PLSQL中文显示乱码,可能是Oracle客户端和服务器端的编码方式不一样。
- 查询Oracle服务器的语言、地域和字符集:NLS_LANG。
-- 查询Oracle服务器的语言、地域和字符集 select * from V$NLS_PARAMETERS;
NLS_LANGUAGE 表示“语言”
NLS_TERRITORY 表示“地域”
NLS_CHARACTSET 表示“字符集”
将他们三个按照“语言_地域.字符集”的格式拼接起来,就有了“AMERICAN_AMERICA.ZHS16GBK”
- ,将查询结果设置为本地的环境变量NLS_LANG:
NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
- 需要注意的是:网上很多说要修改本地注册表中的“HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->KEY_OraClient11g_home1”项,其实是不对的,注册表项是本地Oracle的字符集,跟你要访问的服务器Oracle没有关系。