oracle中文字乱码的问题

oracle中文字乱码的问题,第1张

查找注册表

32位在:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\ORACLE\HOMExx\NLS_LANG(这里是32位的应用程序在64位windows系统中,注册表位置在"WOW6432NODE"下。)64位在:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG(这里是64位的应用程序在64位windows系统中,注册表位置直接在"SOFTWARE"下。)所以修改客户端NLS_LANG需要看清注册表地址。切记。解决方法:将服务器的DB客户端的NLS_LANG改为SIMPLIFIED CHINESE_CHINAAL32UTF8将笔记本的DB客户端的NLS_LANG也改为SIMPLIFIED CHINESE_CHINAAL32UTF8这样笔记本DB客户端输入中文的时候,编码会转为AL32UTF8。服务器上客户端也能对应解码。如果将笔记本DB客户端NLS_LANG设置为ZHS16GBK。在编码转换显示的时候,就会出现乱码

打开PLSQL

d出登陆界面,进去登陆

随便写了一个查询语句,发现显示有乱码

解决办法:

先查看oracle服务器端的字符编码是什么

配置一个环境变量就可以解决问题

变量名称:NLS_LANG

变量值:SIMPLIFIED CHINESE_CHINAZHS16GBK

按照下面图是

加好环境变量之后关闭PLSQL重新打开,写一个查询试试效果

如下图所示说明乱码问题解决。

可能是字符集不一致造成的,字符集有数据库字符集和客户端字符集,对你这种情况来说,导出和导入都要涉及,也就是说你要保证4个字符集都一致才行

exp时源数据库字符集,客户端字符集

imp时目标数据库字符集和客户端字符集

如果你就在数据库服务器上导出或者导入,那么你这机器既作为数据库服务器也做导入导出客户端

1、按win+R键调出windows运行窗口,并在窗口中输入“cmd”以便进入命令行程序。

2、在cmd命令行下输入“sqlplus用户名/密码@服务名”来登录数据库,其中用户名,密码,服务名需要根据实际情况进行替换。

登陆完成后,会发现提示语并不是中午,或者包含有乱码,在sqlplus中,selectuserenv('language')fromdual;查看当前数据库的字符集。

为:SIMPLIFIEDCHINESE_CHINAZHS16GBK。需要把客户端字符集和 *** 作系统字符集都设置成这个就行了。

3、首先设置客户端字符集,右击我的电脑,选择属性。

4、在d出的“属性”对话框中,选择“高级”->“环境变量”。

5、在环境变量中查找一个名为“NLS_LANG”的环境变量,如果找不到,则新建一个。

把变量值赋值为:“SIMPLIFIEDCHINESE_CHINAZHS16GBK”(需要根据实际数据库服务器字符集进行赋值)。客户端字符集设置成功。

6、在开始菜单中选择“控制面板”-“区域和语言选项”,在该选项下对计算机语言进行设置。

7、在“高级”选项下,选择“非Unicode程序的语言”为中文,同时点击确定。

点击确定后会提示安装字符集同时提示需要重启计算机才能生效,重启吧。

8、重启完成后,再次进入sqlplus,发现中文乱码问题解决。

你好,大多数都是字符集不一致导致的乱码问题。对于出现乱码或问号等不正常显示问题,根据数据库字符集,正确配置参数NLS_LANG,一般可以解决,如果仍出现乱码,则可能和所使用的工具的字体编码设置有关。

那么解决出现的乱码时应该依次检查:查看数据库和客户端字符集,主要设置NLS_LANG;查看系统语言设置LANG参数;查看所用终端、工具字体编码设置。

针对所出现的问题,查看plsql的字体编码为GB2312,CRT的字体编码是UTF-8,修改为GB2312,centos终端修改-终端设置-字符编码修改,乱码问题解决。

说明数据库不支持中文,修改为GBK或者Utf-8就可以了。

ALTER SYSTEM DISABLE RESTRICTED SESSION;改完编码后执行

sql> conn / as sysdba;

sql> shutdown immediate;

database closed

database dismounted

oracle instance shut down

sql> startup mount;

oracle instance started

total system global area  135337420 bytes

fixed size                          452044 bytes

variable size                     109051904 bytes

database buffers              25165824 bytes

redo buffers                      667648 bytes

database mounted

sql> alter system enable restricted session;

system altered

sql> alter system set job_queue_processes=0;

system altered

sql> alter system set aq_tm_processes=0;

system altered

sql> alter database open;

database altered

sql> alter database character set internal_use UTF-8;

sql> shutdown immediate;

sql> startup;

查看数据库编码格式:select userenv('language') from dual;

如果数据库格式支持中文,那么就要看下执行的sql是不是本身就有乱码了。

以上就是关于oracle中文字乱码的问题全部的内容,包括:oracle中文字乱码的问题、plsql连接oracle数据库查询汉子显示乱码、导入oracle的数据有乱码怎么办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9781662.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存