视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
关于字符集的测试报告_MySQL
2020-11-09 17:42:00 责编:小采
文档


nls_lang用于设置客户端的字符集。影响sqlplus界面的语言。

regedit:
hkey_local_machine/software/oracle/home0
nls_lang键值
1、取值为‘US7ASCII'或为空
2、取值为‘simplified chinese_china.ZHS16GBK'

nls_characterset用于设置数据库内部字符集,决定数据记录保存的格式。
1、取值为‘US7ASCII'或为空
2、取值为‘ZHS16GBK'

测试:环境(已有一表为test_char.内含有汉字)
1>客户端,服务器端的字符集为ZHS16GBK:
.能正确显示test_char.
.能正确建立含有汉字记录的表。
.将xiejia.test_char导入到模式test中
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

2>客户端为ZHS16GBK, 服务端的内部字符集为US7ASCII
.无法正常显示test_char
.在建立含有汉字记录的表后,无法正常显示该内容
.在执行export过程中。
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
服务器使用 US7ASCII 字符集 (可能的字符集转换)

3>客户端为US7ASCII,服务端的内部字符集为US7ASII
.能正常显示test_char
.在建立含有汉字记录的表后,不能正常显示该内容
.在执行export过程中
Export done in US7ASCII character set and AL16UTF16 NCHAR character set
在执行import过程后,无法正常显示导入内容

4>客户端为ZHS16GBK,服务端的内部字符集为US7ASCII
.不能正常显示test_char
.在建立含有汉字记录的表后,不能正常显示该内容
.在执行export过程中
Export done in US7ASCII character set and AL16UTF16 NCHAR character set
server uses ZHS16GBK character set (possible charset conversion)

总结:
客户端的设置uls_lang可决定地导出字符集。

在oracle9i数据库,客户端字符集必须与数据库核心字符集类型一致,否则汉字出现乱码

相关表:
v$nls_parameters
nls_database_parameters
props$

保留问题:

如果在客户端与服务端字符集同为US7ASCII,建立含汉字字符的表无法正常显示记录?会不会是因US7ASCII不支持汉字?

下载本文
显示全文
专题