Linux乱码和数据库乱码的问题简单排查

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

最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
8天前
|
缓存 监控 Linux
在Linux中,如何进行数据库调优?
在Linux中,如何进行数据库调优?
|
8天前
|
SQL 关系型数据库 MySQL
遇到mysql数据库死锁,你会怎么排查?
遇到mysql数据库死锁,你会怎么排查?
30 0
|
8天前
|
安全 Linux 文件存储
在Linux中,服务器开不了机怎么解决⼀步步的排查?
在Linux中,服务器开不了机怎么解决⼀步步的排查?
|
8天前
|
运维 监控 网络协议
在Linux中,如何进行网络故障排查?
在Linux中,如何进行网络故障排查?
|
9天前
|
关系型数据库 MySQL Linux
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
在Linux中,如何配置数据库服务器(如MySQL或PostgreSQL)?
|
11天前
|
缓存 监控 Java
在Linux中,OOM是什么引起的?排查思路是什么?
在Linux中,OOM是什么引起的?排查思路是什么?
|
11天前
|
SQL 关系型数据库 MySQL
在Linux中,如何备份和恢复MySQL数据库?
在Linux中,如何备份和恢复MySQL数据库?
|
11天前
|
监控 安全 算法
在Linux中,cpu使用率过高可能是什么原因引起的?排查思路是什么?
在Linux中,cpu使用率过高可能是什么原因引起的?排查思路是什么?
|
6天前
|
存储 前端开发 关系型数据库
Linux 技术架构:前端、后端与数据库的完美融合
【8月更文挑战第25天】本文深入剖析了Linux操作系统的技术架构,重点介绍了前端、后端及数据库三大核心组成部分。Linux前端技术不仅涵盖了图形用户界面(GUI),包括GNOME、KDE等桌面环境,还涉及HTML、CSS、JavaScript等Web前端技术及其相关框架。后端技术则聚焦于Python、Java等多种编程语言、Apache和Nginx等Web服务器以及MySQL、PostgreSQL等数据库管理系统。Linux数据库技术覆盖了关系型和非关系型数据库,如MySQL、MongoDB等,并提供了多种数据库管理工具。
18 0
|
7天前
|
运维 监控 Linux
Linux系统读写硬盘慢,如何排查?四步教你定位问题!
【8月更文挑战第24天】在Linux系统运维中,硬盘读写速度慢是一个常见且影响重大的问题。它不仅会导致服务器性能下降,还会影响用户体验。本文将详细介绍四个步骤,帮助你快速定位并解决Linux系统硬盘读写慢的问题。
70 0

热门文章

最新文章

下一篇
云函数