oracle 11g linux 导入中文字符乱码问题解决

1. 涉及的字符集

  这个可以分成三块,数据库服务器字符集(server)、实例字符集(instance), 会话字符集(session)

2. 乱码的原因

  session 的字符集和 server 的字符集不相同导致的

3. 字符集来源

 3.1 server

  server 来源应该是 db_install.rsp 文件(不确定,没去查), 具体查看修改的方法如下

-- 查看
select * from nls_database_parameters;
select * from sys.props$;
-- 修改
shutdown immediate;
startup mount;
alter session set sql_trace=true;
alter system enable restricted session;
alter system set job_queue_processes=0;
alter system set aq_tm_processes=0;
alter database open;
alter database character set internal_use al32utf8;
alter session set sql_trace=false;
-- 修改 server 的相关字符级
update sys.props$ set value$=‘american‘ where name=‘nls_language‘;
update sys.props$ set value$=‘al16utf16‘ where name=‘nls_nchar_characterset‘;

shutdown immediate;
startup;

 

我的修改如下:

-- server --
NLS_LANGUAGE         -> SIMPLIFIED CHINESE => AMERICAN
NLS_CHARACTERSET     -> WE8MSWIN1252     => AL32UTF8
NLS_NCHAR_CHARACTERSET -> UTF8           => AL16UTF16

3.2 instance

 这个来源是 dbca.rsp(不确定, 有需要的 可以看 rsp 文件里的注释 )

3. 3 session

 这个来源是用户当前的环境,如果当前环境没配置,那么就会继承 instance 的相关值,具体修改也比较简单,直接改 oracle 用户的 NLS_LANG 的环境变量值就好了。

#export NLS_LANG=‘AMERICAN_AMERICA.AL32UTF8‘
export NLS_LANG=‘SIMPLIFIED CHINESE_CHINA.AL32UTF8‘

因为我也不知道用什么值,我是一个一个试的,这里别人说 session 配置的字符集要是 server 是 session 的超集,配置的时候要注意。

ps:

  session 要注意,不同的 session 会有不同的值。

数据库字符集的

原文地址:https://www.cnblogs.com/ashen/p/12623106.html

时间: 2024-10-01 22:15:45

oracle 11g linux 导入中文字符乱码问题解决的相关文章

ORACLE 11G中PLSQL中文显示乱码、Linux下sqlplus查询中文乱码

问题描述: 本地是win7操作系统,cmd里面sqlplus进去连接oracle数据库,中文可以正常显示,但是plsql连接oracle数据库,中文显示乱码,还有xshell远程连接oracle服务器登录进去使用sqlplus登录也显示中文乱码. 1.检查windows7下面cmd里面sqlplus中oracle server端的字符集. 打开cmd,用sqlplus登录,输入下面SQL查询服务端的字符集. SQL> select userenv('language') fromdual; US

iOS 文件下载 (AFNetwork 三方框架 文件名中文字符乱码问题解决)四

很久以前,就把这篇文章的andriod部分和服务器部分搞定,最近论文送审途中,于是写了几行简单的代码如下. 把AFNetwork拿来做一下.具体代码如下: -(void)download { NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration]; AFURLSessionManager *manager = [[AFURLSessionManager alloc] i

Linux中文显示乱码问题解决方法(编码查看及转换)

Linux中文显示乱码问题解决方法(编码查看及转换) 1,示例 图中名为一个.sql文件的一段内容,是一个数据库文件.其在windows中打开显示正常,在Linux中,中文部分显示为乱码. 注意:这个与数据库乱码的情况不同,属于文件内容的乱码. 2,分析 Linux系统与windows系统在编码上有显著的差别.Windows中的文件的格式默认是GBK(gb2312),而Linux系统中文件的格式默认是UTF-8.这两个系统就好比是中国和日本.文件就好比是一个人,如果要在另外的国家居住就要办理居住

ZendStudio导入项目中文注释乱码问题解决

在zendstudio ide中,导入一个工程后,发现工程里面很多的文件都打上了红色的叉叉,打开这些文件一看,发现只要是有汉字存在的文件,都出现了乱码.按住alt+enter发现,该文件的编码默认为gbk,当你将当前文件编码改为utf8,这个文件就正常了.但是工程中存在很多这样的文件,总不至于一个一个去修改吧,重复而无效率的劳动. 我们可以这样修改: windows->preference->General->workplace,将右边的“text file encoding”修改为ut

Java中FTPClient上传中文目录、中文文件名乱码问题解决方法【好用】

转: Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 问题描述: 使用org.apache.commons.net.ftp.FTPClient创建中文目录.上传中文文件名时,目录名及文件名中的中文显示为“??”. 原因: FTP协议里面,规定文件名编码为iso-8859-1,所以目录名或文件名需要转码. 解决方案: 1.将中文的目录或文件名转为iso-8859-1编码的字符.参考代码: 复制代码 代码如下: String name="目录名或文件名"; name=

Xshell4连接,Linux系统中文显示乱码解决办法

Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET NetSarang Xshell 4 Build 0120议.使用Xshell可以快速方便的管理Linux主机等 但是有时我们使用,经常遇到.linux下中文显示乱码的情况,其实解决办法很简单,下面跟着小编来看看,如何解决XShell连接linux中文乱码 工具/原料 Linux系统(Centos)  Xshell Xshell连接Linux系统 1 Xshell

mysql中采用concat来拼接中文字符乱码解决方式(转)

mysql中采用concat来拼接中文字符乱码解决方式 - fuxuejun的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/fuxuejun/article/details/6284725 mysql concat乱码问题解决 concat(str1,str2) 当concat结果集出现乱码时,大都是由于连接的字段类型不同导致,如concat中的字段参数一个是varchar类型,一个是int类型或doule类型,就会出现乱码. 解决方法:利用mysql的字符

ubuntu下解压zip rar中文字符乱码的问题

如题,解压zip rar中文乱码的问i题一直困扰着我,每次都要到window系统下解压,很是不方便,今天终于把这类问题解决了.整理总结分享如下 一 .    解决 Rar 压缩文件乱码问题 Rar 压缩在 Ubuntu 下可能出现乱码,这是由于安装了 rar 软件包(开源 Rar 压缩格式解压工具), 解决方法是安装闭源的 unrar 软件包,在终端依次输入以下命令即可: sudo apt-get remove rar sudo apt-get install p7zip-full p7zip-

Keil uVision4 代码编辑器中文字符乱码问题

MDK-ARM 使用中一直有个很纠结的问题,中文字符支持不好. 比如写代码注释,使用中文删除字符就会只删除一半问题.复制粘贴代码中间有中文就会出现乱码问题. 想过换IAR,新学个IDE也麻烦,上面的问题也不很大稍微绕一下也能解决,所以一直没换. 发现其实这个根本不是问题,安装好后默认是ANSI编码,所以会出现上述问题.只要把编码改成UTF-8编码就能解决上述烦恼. 设置步骤:     1.选择菜单:[Edit]->[Configuration]       2.页签[Editor]中 Gener