解决Linux下sqlplus中文乱码问题

错误现象:
在windows下用其他工具访问oracle,确认中文正常显示。在Linux下使用sqlplus查询数据表中文内容出现乱码。

分析及解决:
因为windows下正常,所以问题应出现在Linux客户端。用下列sql查询数据库字符集为“ZHS16GBK”:

  1. SELECT * FROM nls_database_parameters t

  2. WHERE t.parameter = ‘NLS_CHARACTERSET‘;

设置环境变量NLS_LANG,问题解决。

  1. export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"

其他:

export LANG="zh_CN.GB18030" 可解决Linux显示中文文件名的问题。
rpm
-aq | grep fonts-chinese 用于查看Linux是否安装中文字体。

本文出自 “iData” 博客,请务必保留此出处http://idata.blog.51cto.com/4581576/943404

时间: 2024-11-03 22:00:24

解决Linux下sqlplus中文乱码问题的相关文章

解决Linux下Oracle中文乱码的一些心得体会 ,转自

以下转自 http://blog.itpub.net/29151695/viewspace-1173238/ 最近在linux上安装完oracle 10gR2后,又遇到了字符集乱码的问题,之前在网上找了下,然后解决完后就不了了之了,这次又碰到此类问题,所以就认真下来花点时间去测试了一番,经过一些测试,现在已经解决了问题,现在把自己遇到的问题和解决方法记录一下,方便自己日后查找. 测试环境如下: 测试平台: VMware? Workstation 9.0.2 build-1031769 (注:VM

Linux下SQLPlus中文乱码处理

1.首先查询数据库字符集 SQL> select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------------------------- AMERICAN_AMERICA.AL32UTF8 SQL> exit 从上面得知数据库字符集为AMERICAN_AMERICA.AL32UTF8 2.配置环境变量 echo 'export NLS_LANG="AMERICAN_

rlwrap: command not found和解决linux下sqlplus 提供浏览历史命令行的功能

rlwrap工具可以解决linux下sqlplus 提供浏览历史命令行的功能,和删除先前输入错误的字母等问题 1.安装 需要readline包 这个安装光盘就有 [[email protected] RedHat]# cd RPMS/[[email protected] RPMS]# rpm -Uvh readline*warning: readline-4.3-13.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60eerror: Failed

解决linux下unzip中文有乱码的问题

xxx.zip 中有中文的文件,在linux下unzip就会有乱码. 解决办法:安装7zip 去http://sourceforge.net/projects/p7zip/files/latest/download?source=typ_redirect 下载 p7zip_9.20.1_src_all.tar.bz2 上传到服务器tar -jxvf ,再make.make install. 解压文件:7za x xxx.zip 就OK了

解决linux下导入数据库乱码问题

引言:在windows下的mysql数据库导出SQL文件,在Linux下导入后显示为乱码. 1.启动Mysql服务及创建数据库(下面uushop为我将创建的数据库名) ? 1 2 service mysqld start create database uushop; 2.导入Mysql文件方式 --未登录 mysql -u root -p uushop < /software/uushop.sql --已登录 use uushop; source /software/uushop.sql 3.

linux oracle sqlplus中文乱码解决

在oracle用户的~/.bash_profile中添加 NLS_LANG="SIMPLIFIED CHINESE"_CHINA.ZHS16GBKexport NLS_LANG 然后保存退出, source ~/.bash_profile 再次登录sqlplus乱码就没了. 注意:NLS_LANG的具体值要根据你的数据库实例的实际编码修改,一般情况下中文应该都是"SIMPLIFIED CHINESE"_CHINA.ZHS16GBK,具体怎么查询数据库的编码参考下面链

解决 Linux centos crt 中文 乱码 问号

如何查看linux系统语言 echo $LANG一般显示为en_US.UTF-8这也是系统默认的语言 查看是否有中文语言包 locale若没有zh_CN.UTF-8相关内容,说明没有安装语言包, 安装方法如下(centos或者RedHat系列,debian使用apt-get安装,自己搜索下教程) yum groupinstall chinese-support 有了中文语言包还不行, 需要设置vi /etc/sysconfig/i18n按i切换从insert模式,将en_US.UTF-8修改为z

linux下mysql中文乱码问题

如果无论前端数据.后端数据都是uft-8编码,程序上找不出任何问题,但是仍然出现插入数据库乱码,那么有可能就是mysql数据库服务器本身字符集编码有问题 用mysql-front连接上数据库后执行:show variables like 'character%'; 可以发现,character_set_server这里的字符集编码是latin1 修改/etc/my.cnf文件,修改添加character-set-server=utf8这一行 [[email protected] ~]# cat 

转: 解决MSYS2下的中文乱码问题

解决方案 新建/usr/bin/win: 12 #!/bin/bash[email protected] |iconv -f gbk -t utf-8 新建/etc/profile.d/alias.sh: 12345678 alias ls="/bin/ls --color=tty --show-control-chars"alias grep="/bin/grep --color"alias ll="/bin/ls --color=tty --show-