在本地的虚拟机环境一直凑合着用英文,今天想看看中文的东西都显示乱码,下定决心要把问题解决了。
如果直接打印文本内容,通过putty也会显示乱码。
[ora11g@rac1 ~]$ cat aa.sh
δ? ε??ο?θ?ζ―δ?δ??ζ?θ―
[ora11g@rac1 ~]$
个时候很可能是putty的编码转换的问题,通过查看putty的设置,如上,可以看到应该选为utf-8。
选为UTF-8以后,重新打印,就没有问题了。
[ora11g@rac1 ~]$ cat aa.sh
你好,这是一个测试
第一个问题解决了,第二个问题又来了,来看看数据库层面的乱码问题。
[ora11g@rac1 ~]$ sqlplus n1/n1
SQL> select *from test;
ID NAME
---------- -----------------------------
1 ??????
这个时候看看环境变量NLS_LANG的设置,如果为空,很可能会出问题。
[ora11g@rac1 ~]$ echo $NLS_LANG
[ora11g@rac1 ~]$
简单设置一下,这个最好和数据库层面的字符集要一致。
[ora11g@rac1 ~]$ echo $NLS_LANG
american_america.AL32UTF8
再来查看一下,就没有问题了。
SQL> select *from test;
ID NAME
---------- -----------------------------
1 突破玩法界限
当然了,我的这个问题刚好数据库层面是完全支持的,这样就省去了很多额外的工作,如果数据库层面的字符集不支持,那很可能就得重建库来改变字符集了。
select *from nls_database_parameters SQL> / PARAMETER VALUE ------------------------------ ---------------------------------------- NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CHARACTERSET AL32UTF8 NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN NLS_SORT BINARY NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR NLS_DUAL_CURRENCY $ NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_RDBMS_VERSION 11.2.0.3.0另外系统层面的乱码,网上查看了一下,有些人建议修改/etc/sysconfig/i18n的设置。
[ora11g@rac1 ~]$ cat /etc/sysconfig/i18*
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
如果修改为中文的,一定要注意设置的值,在我本地做测试,是不需要修改的,本身就支持,我修改的时候,竟然改错了,结果重新登录及报了一大堆的错误,如下:
[ora11g@rac1 caipiao]$ su - ora11g
Password:
-bash: warning: setlocale: LC_CTYPE: cannot change locale (zn_CN.UTF-8): No such file or directory
-bash: warning: setlocale: LC_COLLATE: cannot change locale (zn_CN.UTF-8): No such file or directory
-bash: warning: setlocale: LC_MESSAGES: cannot change locale (zn_CN.UTF-8): No such file or directory
-bash: warning: setlocale: LC_NUMERIC: cannot change locale (zn_CN.UTF-8): No such file or directory
-bash: warning: setlocale: LC_TIME: cannot change locale (zn_CN.UTF-8): No such file or directory
如果修改,应该改为zh_CN,算是一个低级错误。
相关推荐
linux下mysql数据库乱码问题
MySQL数据库乱码-Linux下乱码问题一 乱码问题是很让人抓狂的问题,下面我将记录一下linux下mysql乱码问题的解决方法。 mysql在linux下乱码问题 一、操作 mysql默认字符集是latin1,但是我们大部分程序使用的...
Linux上Oracle安装前汉字乱码和安装后创建数据库乱码的解决方法(含附件)
解决MySQL数据库乱码问题,以及命令行查表乱码问题
JSP解决乱码JSP解决乱码JSP解决乱码JSP解决乱码JSP解决乱码
linux乱码解决.linux乱码解决.linux乱码解决.linux乱码解决.linux乱码解决.linux乱码解决.
linux下中文乱码问题,全面的讲解了linux中文乱码的解决方法,
解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码问题,添加中文支持解决linux下oracle中文乱码...
1.由于 firefox 默认是允许网页自己选择字体,在 Linux 上便会出现部分网站的乱码情况。因此可以取消允许页面自己选择字体这个选项便能解决部分乱码情况。 2.倘若还有乱码,以及其他应用程序乱码,则尝试如下...
解决两个问题:vs自带数据库sql server的中文插入乱码问题、查找当前数据库名 (查找数据库名在文章中间,自己往下翻吧,不单拎出来了) vs自带数据库sql server的中文插入乱码问题: 如图所示,我插入表的中文变成...
开发过程只能怪,遇到Oracle数据库US7ASCII字符集乱码问题
VMware Workstation自动安装和Linux中文乱码问题
主要时解决navicat连接MYSQL时造成的乱码问题,文档详述描写了怎么查找乱码原因和解决方案,主要是解决MySQL5.5的问题,针对不同的乱码问题,提供简单解决方法。
解决LINUX中中文显示乱码的问题。
MySQL乱码解决方案数据库乱码MySQL乱码解决方案数据库乱码
hibernate数据库中文乱码问题2008年09月16日 星期二 下午 12:00我的数据库用的是mysq,编码我设成了utf-8! 用自己写的连接池可以设置编码
Linux乱码问题解决方案.docx
解决数据库乱码问题,对oracle很适用,其它数据库还没试过
这篇文档很详细的讲解了linux的乱码问题 之前发过一次的那个文档是我从网上找的 这一个是我自己在ubuntu系统上面试过之后加上自己的修改后转换成pdf文件 我的博客http://blog.csdn.net/voldermort827 来自大懒猴...
常见oracle数据库乱码解决 -- 常见oracle数据库乱码解决