Linux乱码和数据库乱码的问题简单排查
2023-09-11 14:20:54 时间
在本地的虚拟机环境一直凑合着用英文,今天想看看中文的东西都显示乱码,下定决心要把问题解决了。
如果直接打印文本内容,通过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 突破玩法界限
当然了,我的这个问题刚好数据库层面是完全支持的,这样就省去了很多额外的工作,如果数据库层面的字符集不支持,那很可能就得重建库来改变字符集了。
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/
教程:Alibaba Cloud Linux操作系统安装Redis内存型数据库 教程:Alibaba Cloud Linux操作系统安装Redis内存型数据库,阿里云持久内存服务器ECS可用于搭建Redis内存型数据库,云服务器吧以阿里云服务器ECS持久内存型、Alibaba Cloud Linux镜像操作系统安装Redis 6.0.5或Redis 3.2.12详细操作流程如下:
linux下安装解压版mysql5.7,看了这篇女朋友都能安装数据库 linux系统centos7.2,mysql版本5.7,网络上看了很多的教程,大部分都失败了,很多人写的安装步骤,都存在很多问题。这里就不一一说明了,这是一篇很优质的安装教程,一次通过,保证你女朋友看了都能一次成功。
![](http://www.51testing.com/attachments/2014/09/14982672_201409030959061ffQn.jpg)
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/
教程:Alibaba Cloud Linux操作系统安装Redis内存型数据库 教程:Alibaba Cloud Linux操作系统安装Redis内存型数据库,阿里云持久内存服务器ECS可用于搭建Redis内存型数据库,云服务器吧以阿里云服务器ECS持久内存型、Alibaba Cloud Linux镜像操作系统安装Redis 6.0.5或Redis 3.2.12详细操作流程如下:
linux下安装解压版mysql5.7,看了这篇女朋友都能安装数据库 linux系统centos7.2,mysql版本5.7,网络上看了很多的教程,大部分都失败了,很多人写的安装步骤,都存在很多问题。这里就不一一说明了,这是一篇很优质的安装教程,一次通过,保证你女朋友看了都能一次成功。
相关文章
- 【Linux】linux之如何清理磁盘空间
- 修改linux的MAC地址
- 新手学Linux(一)----安装JDK
- 思维导图学 Linux Shell攻略之干货篇 mysql数据库脚本管理系统
- linux(kubuntu 21.10): 配置五笔输入法
- Linux系统进程管理详解
- linux安装python3
- Linux程序写入oralce数据库中文显示为问号??? 代码实现设置环境变量!
- L84.linux命令每日一练 -- 第11章 Linux系统管理命令 -- rpm和yum
- L83.linux命令每日一练 -- 第11章 Linux系统管理命令 -- ipcs和ipcrm
- L72.linux命令每日一练 -- 第十章 Linux网络管理命令 -- mail和nslookup
- L65.linux命令每日一练 -- 第十章 Linux网络管理命令 -- ifdown和route
- L48.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- last、lastb和lastlog
- L2.linux命令每日一练 -- 第一章 Linux命令行简介
- Linux dmesg 命令 - 打印内核环形缓冲区
- 嵌入式Linux开发,Ubuntu下交叉编译内核报错:error while loading shared libraries: /lib/x86_64-linux-gnu/libc++.so:
- linux下常用压缩命令 tar压缩Linux解压 压缩Linux压缩Ubuntu压缩centos压缩解压gz txt.gz
- 【Linux】linux经常使用基本命令
- linux 系统版本信息
- 64:权限提升-Linux定时任务&环境变量&数据库
- 【汇总】Windows linux 敏感目录 路径汇总——主要是主机配置文件、web配置文件
- Linux MySQL数据库远程连接的两种方法
- Linux系列 linux 常用命令(笔记)
- Linux的java服务配置步骤
- Linux运维常用命令