前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux乱码和数据库乱码的问题简单排查(r2笔记83天)

linux乱码和数据库乱码的问题简单排查(r2笔记83天)

作者头像
jeanron100
发布2018-03-14 17:05:08
1.1K0
发布2018-03-14 17:05:08
举报

在本地的虚拟机环境一直凑合着用英文,今天想看看中文的东西都显示乱码,下定决心要把问题解决了。 如果直接打印文本内容,通过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,算是一个低级错误。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2014-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档