6Microsoft 日语 Windows Shift-JIS 代码页被注册为 6IBM 编码字符集标识(CCSID)943。然而,该 Shift-JIS 代码页在 6HP-UX 平台上被注册为 CCSID 5039。CCSID 5039 只包含一些日本工业标准(JIS)字符,没有任何供应商定义的字符。在 HP-UX 上,可以使用 6CCSID 5039 的 DB2 UDB 数据库来存储 Shift-JIS 字符,但是 CCSID 5039 与 CCSID 943 之间将存在代码页转换。当使用 Microsoft 6ODBC 应用程序时,在将 CCSID 为 5039 的数据转换为 6Unicode 时,由于 IBM 的代码页转换表与 Microsoft 的代码页转换表之间存在差异,所以可能会遇到潜在问题。
6当从 CCSID 5039 转换为 Unicode 时,以下字符列表可能会产生不同的代码点,这取决于所使用的转换表(IBM 或 Microsoft)。对于这些字符,IBM
6转换表遵守日本工业标准 JISX0208 和 JISX0221。
6
6表 2. CCSID 5039 至 Unicode 代码点转换
Shift-JIS 代码点(字符名称) | IBM 主要代码点(Unicode 名称) | Microsoft 主要代码点(Unicode 名称) |
---|---|---|
X'815C'(长破折号) | U+2014(长破折号) | U+2015(横杠) |
X'8160'(波浪号) | U+301C(波浪号) | U+FF5E(全角代字号) |
X'8161'(双竖线) | U+2016(双竖线) | U+2225(平行线) |
X'817C'(减号) | U+2212(减号) | U+FF0D(全角减号短划) |
6例如,当使用 IBM 转换表时,CCSID 5039 代码点为 X'815C' 的长破折号字符被转换为 6Unicode 代码点 U+2014,但当使用 Microsoft 转换表时,却被转换为 U+2015。这对于 6Microsoft ODBC 应用程序可能会产生潜在问题,因为这些应用程序会认为 6U+2014 是无效的代码点。为了避免这些潜在问题,除了缺省 IBM 转换表之外,DB2 UDB 还提供了从 6CCSID 5039 转换为 Unicode 的备用 Microsoft 转换表。需要用该备用 6Microsoft 转换表替换缺省 IBM 转换表。注意,从 Unicode 至 CCSID 5039 6的缺省 IBM 转换表要与 Microsoft 版本相匹配。