Oracle字符编码 - 特定符号显示不正确

时间:2011-06-08 16:50:02

标签: oracle character-encoding nls-lang

网络浏览器错误地显示特定的挪威符号 DB的配置:

NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET WE8ISO8859P1
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE

问题出在NLS_CHARACTERSET

1 个答案:

答案 0 :(得分:2)

如果数据库尚未设置为使用多字节字符集,或者与这些挪威字符兼容的单个字符字节集,那么客户端无法做任何事情就可以解决这个问题。

但您可以尝试设置环境变量并查看其是否有效

NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_LANG

看起来数据库是为基于美国的字符集设置的。它是单字节“WE8ISO8859P1”,并非针对挪威语。

现代应用程序(和Web浏览器)通常使用UTF-8,因此在将UTF-8数据转换为单字节字符集时会丢失信息。

我认为,从长远来看,你最好尝试转换数据库。

http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/toc.htm