本地ORACLE连接创建好后,默认是GBK的字符集,如果连接服务器不是同样的GBK字符集就会出现中文乱码的问题,这种情况我们需要修改本地的字符集来和服务器匹配.
通过注册表修改
HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0
NLS_LANG 改为你需要的字符集.
设定环境变量
添加环境变量--- NLS_LANG 改为你需要的字符集
常用字符集
AMERICAN_AMERICA.WE8ISO8859P1
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
AMERICAN_AMERICA.AL32UTF8
SIMPLIFIED CHINESE_CHINA.US7ASCII
AMERICAN_AMERICA.US7SCII
AMERICAN _ AMERICA. ZHS16GBK
AMERICAN_AMERICA.utf8
现在,介绍一些与字符集有关的NLS_LANG参数,
NLS_LANG格式:
NLS_LANG = language_territory.charset
有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:language 指定服务器消息的语言。
territory 指定服务器的日期和数字格式。
charset 指定字符集
例如:
AMERICAN_AMERICA.US7SCII
AMERICAN _ AMERICA. ZHS16GBK
还有一些子集可以更明确定义NLS_LANG参数:
DICT.BASE 数据字典基本 表版本
DBTIMEZONE 数据库时区
NLS_LANGUAGE 语言
NLS_TERRITORY 地域
NLS_CURRENCY 本地货币字符
NLS_ISO_CURRENCY ISO货币字符
NLS_NUMERIC_CHARACTERS 小数字符和组 分隔开
NLS_CHARACTERSET 字符集
NLS_CALENDAR 日历系统
NLS_DATE_FORMAT 缺省的日期格式
NLS_DATE_LANGUAGE 缺省的日期语言
NLS_SORT 字符排序序列
NLS_TIME_FORMAT 时间格式
NLS_TIMESTAMP_FORMAT 时间戳格式