DB2 10.5 for Linux, UNIX, and Windows

CCSID 5039 的备用 Unicode 转换表

日语代码页有几个 IBM® 编码字符集标识 (CCSID)。CCSID 943 已注册为 Microsoft 日语版 Windows Shift-JIS 代码页。但是,在 HP-UX 平台上,Shift-JIS 代码页已注册为 CCSID 5039。CCSID 5039 仅包含日本工业标准(JIS)字符,未包含任何由供应商定义的字符。使用 Microsoft ODBC 应用程序时,在将 CCSID 为 5039 的数据转换为 Unicode 时可能会遇到一些潜在问题。这些问题是 IBM 的代码页转换表与 Microsoft 的代码页转换表之间的差别而引起的。

根据使用的转换表(IBM 或 Microsoft)的不同,下列字符在从 CCSID 5039 转换为 Unicode 时会产生不同的代码点。对于这些字符来说,IBM 转换表符合日本工业标准(JIS)JISX0208 和 JISX0221 指定的字符名称。

表 1. CCSID 5039 到 Unicode 代码点转换
Shift-JIS 代码点(字符名称) IBM 主代码点(Unicode 名) Microsoft 主代码点(Unicode 名)
X'815C'(EM 破折号) U+2014(EM 破折号) U+2015(水平线)
X'8160'(波浪线) U+301C(波浪线) U+FF5E(全宽颚音符号)
X'8161'(双竖线) U+2016(双竖线) U+2225(平行号)
X'817C'(减号) U+2212(减号) U+FF0D(全宽连字符-减号)

例如,使用 IBM 转换表时,CCSID 5039 代码点为 X'815C' 的 EM 破折号将转换为 Unicode 代码点 U+2014,但是,在使用 Microsoft 转换表时,它将转换为 U+2015。由于 Microsoft ODBC 应用程序把 U+2014 视为无效代码点,所以对于 Microsoft ODBC 应用程序来说,这会产生潜在问题。为了避免这些潜在问题,需要将用于从 CCSID 5039 转换为 Unicode 的缺省 IBM 转换表替换为 DB2® 数据库管理器提供的备用 Microsoft 转换表。