首页 > 开发 > 综合 > 正文

关于字符集的测试报告

2024-07-21 02:06:42
字体:
来源:转载
供稿:网友



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

regedit:
hkey_local_machine oftware/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不支持汉字?

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表