今天碰到的一个oracle10g乱码问题,原本以为是cmd字符编码的问题,一查数据库内也是乱码,就着手从数据库方面排查,估计是由于win7 64系统的缘故,数据库默认编码nls_characterset字段查不出内容,直接通过注册表修改nls_lang键值:
utf-8编码还是有点问题,索性用ZHS16GBK编码,重启DB,测试问题解决
这个问题蛮搞的,之前在做数据迁移的时候也碰到过,用第三方工具查数据没问题,但是直接通过cmd用sqlplus就会有问题,网上相关解决方案也挺多的,但都是千篇一律,没什么参考价值,类似于一些设置有的是需要修改SPFILE和PFILE他们都没有说明
希望这篇文对碰到相同问题的朋友有所帮助
一些可能会用到的T-SQL:
查看字符编码:select * from v$nls_parameters;用于查看NLS_LANGUAGE 和 NLS_CHARACTERSET字段属性
一般用ZHS16GBK即可,UTF-8的编码还是会有些问题,难道是编码大小的问题?我这边会出现类似于在中文系统上使用日文软件的一些乱码,这个等以后有时间了再研究分析下
PS:修改完nls_lang后需要重启下数据库,另外仅对设置后插入的信息有效,之前的数据还是乱码状态,这个可以通过第三方工具把数据取出,然后重新导入即可
utf-8编码还是有点问题,索性用ZHS16GBK编码,重启DB,测试问题解决
这个问题蛮搞的,之前在做数据迁移的时候也碰到过,用第三方工具查数据没问题,但是直接通过cmd用sqlplus就会有问题,网上相关解决方案也挺多的,但都是千篇一律,没什么参考价值,类似于一些设置有的是需要修改SPFILE和PFILE他们都没有说明
希望这篇文对碰到相同问题的朋友有所帮助
一些可能会用到的T-SQL:
查看字符编码:select * from v$nls_parameters;用于查看NLS_LANGUAGE 和 NLS_CHARACTERSET字段属性
一般用ZHS16GBK即可,UTF-8的编码还是会有些问题,难道是编码大小的问题?我这边会出现类似于在中文系统上使用日文软件的一些乱码,这个等以后有时间了再研究分析下
PS:修改完nls_lang后需要重启下数据库,另外仅对设置后插入的信息有效,之前的数据还是乱码状态,这个可以通过第三方工具把数据取出,然后重新导入即可