sqlplus 汉字乱码问题的解决

摘要:
但是在服务器端直接用sqlplus连接查询之后,所有中文都显示为乱码。第一反应是字符集的问题,也尝试用修改字符集来解决问题,最终问题还是出在系统的环境变量上。我们可以在session中修改Nls_language,不能修改Nls_lang。

从数据库中导一个数据的时候出现了一个很奇怪的问题,中文乱码。首先可以确认的一点,数据在数据库中是以中文存在的,还有就是用Toad进行连接查询的时候也是中文。但是在服务器端直接用sqlplus 连接查询之后,所有中文都显示为乱码。第一反应是字符集的问题,也尝试用修改字符集来解决问题,最终问题还是出在系统的环境变量上。

关于数据库字符集的问题,参考我的blog

Oracle 字符集的查看和修改

http://blog.csdn.net/tianlesoftware/archive/2009/12/02/4915223.aspx

解决方法:

1. export 参数

$ export NLS_LANG="simplified chinese_china.zhs16gbk"

2. 修改配置单数

修改.bash_profile 中的参数,添加相关信息

NLS_LANG="simplified chinese_china.zhs16gbk";

Export NLS_LANG;

以上是在Linux平台,windows 平台用

C:> NLS_LANG="simplified chinese_china.zhs16gbk"

或者添加一个环境变量就可以了。

3. 补充一点知识:

Nls_lang Linux 系统的环境变量;
Nls_language
是数据库的参数。

我们可以在session中修改Nls_language,不能修改Nls_lang

示例:
SQL> ALTER SESSION SET NLS_LANGUAGE= 'SIMPLIFIED CHINESE'

SQL> alter session set nls_lang=American_America.ZHS16GBK;
alter session set nls_lang=American_America.ZHS16GBK
*
ERROR at line 1:
ORA-00922: missing or invalid option

Oracle 的相关参数我们可以通过以下SQL语句查看:

SQL> col PARAMETER format a30

SQL> col VALUE format a30

SQL> select * from v$NLS_PARAMETERS;

PARAMETERVALUE

------------------------------ ------------------------------

NLS_LANGUAGESIMPLIFIED CHINESE

NLS_TERRITORYCHINA

NLS_CURRENCY

NLS_ISO_CURRENCYCHINA

NLS_NUMERIC_CHARACTERS.,

NLS_CALENDARGREGORIAN

NLS_DATE_FORMATYYYY-MM-DD HH24:MI:SS

NLS_DATE_LANGUAGEAMERICAN

NLS_CHARACTERSETZHS16GBK

NLS_SORTBINARY

NLS_TIME_FORMATHH.MI.SSXFF AM

PARAMETERVALUE

------------------------------ ------------------------------

NLS_TIMESTAMP_FORMATDD-MON-RR HH.MI.SSXFF AM

NLS_TIME_TZ_FORMATHH.MI.SSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMATDD-MON-RR HH.MI.SSXFF AM TZR

NLS_DUAL_CURRENCY

NLS_NCHAR_CHARACTERSETAL16UTF16

NLS_COMPBINARY

NLS_LENGTH_SEMANTICSBYTE

NLS_NCHAR_CONV_EXCPFALSE

已选择19行。

SQL>

免责声明:文章转载自《sqlplus 汉字乱码问题的解决》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Intellij idea添加单元测试工具BZOJ4237 稻草人 【CDQ分治】下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Mybatis的基本操作案列增加以及源码的分析(二)

一、构建一个框架的项目的思路 首先我们先建立一个web项目,我们需要jar,mybatis-config.xml和studentDao.xml的配置随后就是dao、daoimpl、entity、的架构。 二、具体步骤(添加一个学生) 1、创建一个web项目 2、导入jar 3、创建实体entity /*** 学生实体类 * @authorHappy...

.net core面试题

第1题,什么是ASP net core? 首先ASP net core不是 asp net的升级版本。它遵循了dot net的标准架构, 可以运行于多个操作系统上。它更快,更容易配置,更加模块化,可扩展性更强。   第2题,asp dot core有哪些好的功能? 第一是依赖注入。 第二是日志系统架构。 第三是引入了一个跨平台的网络服务器,kestrel。...

flask设置cookie,设置session,模拟用户认证、模拟管理后台admin、模拟用户logout --

设置cookie HTTP协议是无状态的,在一次请求响应结束后,服务器不会留下关于客户端状态的信息。但是对于某些web程序来说,客户端的信息有必要被记住,比如用户的登录状态,这样就可以根据用户的状态来返回不同的响应。为了解决这个问题就有cookie技术 。cookie技术通过在请求和响应报文中添加cookie数据来保存客户端的状态信息。 cookie值we...

Oracle 连接、会话数的查看,修改

http://blog.csdn.net/xiaoyao6650/article/details/4027041 查看processes #当前的连接数 selectcount(*)fromv$process; #数据库允许的连接数 selectvaluefromv$parameterwherename='processes'; #查看连接配置信息 s...

@SessionAttributes的覆盖与加入

      在我们使用@SessionAttributes 注解向session加入对象时。当我们使用ModelMap的addAttribute()方法是指向session中加入一个新的对象,而使用HttpSession的setAttribute()方法能够覆盖session中同样的key的value。...

详解Session分布式共享(.NET CORE版)

一、前言&回顾        在上篇文章Session分布式共享 = Session + Redis + Nginx中,好多同学留言问了我好多问题,其中印象深刻的有:nginx挂了怎么办?采用Redis的Session方案与微软Session方案相比,有什么优势呢?Cookie也可以取代Session的,采用Redis的Session方案优势在哪...