先在pl/sql里面查询出oracle客户端的字符集,select userenv('language') from dual;
然后在环境变量设置,这里设置好后一定要重新启动电脑,我尝试了很多方法不重启电脑就是不生效。
最后在代码里面做设置:
System.Environment.SetEnvironmentVariable("NLS_LANG", "AMERICAN_AMERICA.ZHS16GBK");
下表是locale ID与字符集名称的对应关系:
Language |
Locale ID |
NLS_LANG |
English (American) |
en_US.UTF-8 |
AMERICAN_AMERICA.AL32UTF8 |
English (American) |
en_US.ISO-8859-1 |
AMERICAN_AMERICA.WE8ISO8859P1 |
English (American) |
en_US.ISO-8859-15 |
AMERICAN_AMERICA.WE8ISO8859P15 |
English (Australian) |
en_AU.UTF-8 |
ENGLISH_AUSTRALIA.AL32UTF8 |
English (Australian) |
en_AU.ISO-8859-1 |
ENGLISH_AUSTRALIA.WE8ISO8859P1 |
English (Australian) |
en_AU.IS |