1.乱码问题,简单说,就是字符编码和解码格式不一样,就造成乱码。实际软件应用,还是比较复杂的。
2.先来看工具windows 中的DOS。
DOS可以用命令chcp来改变编码。如chcp 936,变成936是简体中文。chcp 65001,是utf-8格式。下面我用DOS连接我的oracle。
首先说下环境: win7 64位,oracle 12.2.0.1.oralce的实例orcl是的编码是AL32UTF8,我设置了windows的环境变量NLS_LANG=AMERICAN_AMERICA.AL32UTF8。
然后我在DOS下连接,展示的中文字体是乱码的,然后我在DOS中设置set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK,则不会出现乱码。请看:
可以看到,当前DOS的设置是GBK,然而我的数据库编码是AL32UTF8,DOS设置为AL32 UTF8的时候,反而是乱码,就比较奇怪了。set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
总结:DOS的编码设置为GBK,NLS_LANG也设置为AMERICAN_AMERICA.ZHS16GBK,没有乱码。
3.现在来看PL/SQL Developer工具连接oracle的乱码。PL/SQL Developer连接Oracle,在win的环境变量NLS_LANG下如果不设置,或者设置得不和oracle编码一致,都会出现乱码。
4.再来看XSHELL工具通过sqlplus连接oracle。xshell连接到linux的shell,当前用户要设置NLS_LANG变量,但是还要设置一个地方,文件》属性》终端》选择语言,
才能显示正常不为乱码。
4.总结上面三个工具,让我感到非常奇怪的是DOS这个工具,设置它的编码为UTF8,反而是乱码。其他工具设置的和数据库编码一致。
2.先来看工具windows 中的DOS。
DOS可以用命令chcp来改变编码。如chcp 936,变成936是简体中文。chcp 65001,是utf-8格式。下面我用DOS连接我的oracle。
首先说下环境: win7 64位,oracle 12.2.0.1.oralce的实例orcl是的编码是AL32UTF8,我设置了windows的环境变量NLS_LANG=AMERICAN_AMERICA.AL32UTF8。
然后我在DOS下连接,展示的中文字体是乱码的,然后我在DOS中设置set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK,则不会出现乱码。请看:
可以看到,当前DOS的设置是GBK,然而我的数据库编码是AL32UTF8,DOS设置为AL32 UTF8的时候,反而是乱码,就比较奇怪了。set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
总结:DOS的编码设置为GBK,NLS_LANG也设置为AMERICAN_AMERICA.ZHS16GBK,没有乱码。
3.现在来看PL/SQL Developer工具连接oracle的乱码。PL/SQL Developer连接Oracle,在win的环境变量NLS_LANG下如果不设置,或者设置得不和oracle编码一致,都会出现乱码。
4.再来看XSHELL工具通过sqlplus连接oracle。xshell连接到linux的shell,当前用户要设置NLS_LANG变量,但是还要设置一个地方,文件》属性》终端》选择语言,
才能显示正常不为乱码。
4.总结上面三个工具,让我感到非常奇怪的是DOS这个工具,设置它的编码为UTF8,反而是乱码。其他工具设置的和数据库编码一致。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30393770/viewspace-2135871/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30393770/viewspace-2135871/