跳到内容 中国
HP.com 主页 产品与服务 支持及驱动程序 解决方案 如何购买
» 联系惠普
更多选项
HP.com 主页
HP-UX 11.0 - 11i 国际化特性白皮书 > 第 2 章 编码字符

编码之间的转换

» 

技术文档资料

完整的 PDF 手册
» 反馈
内容从此开始:

 » 目录

 » 词汇表

 » 索引

更正 iconv (1) 和 iconv (3C) 中的字符映射问题 [11.0 修补软件,11i v1]

本发行版包含对错误字符映射的缺陷修复。更正内容涉及 HP-UX 的简体中文、繁体中文、日语和朝鲜语字符。

从能识别 Unicode 的系统中收发已转换的字符数据时,经过更正的字符转换器映射可以提高互操作性。

对简体中文的更正

修补软件更正了在简体中文的 hp15CN 和 Unicode (UCS2)/UTF-8 之间转换时发生的一个字符映射错误。

具体来说,在 hp15CN 和 UCS2/UTF-8 之间转换时,简体中文字符双竖线映射不正确。该字符映射为另外一个字符:平行线字符。

表 2-19 “简体中文的 iconv 表中的更改” 概括了 iconv 表的更改:

表 2-19 简体中文的 iconv 表中的更改

hp15CN错误的 UCS2正确的 UCS2字符名
0xA1CE 0x2225平行线
0xA1AC0x22250x2016双竖线

 

hp15CN=ucs2ucs2=hp15CN iconv 转换器表受到影响。这些表由 UCS2 和 UTF-8 转换共享。

预计不会发生兼容性问题。但是,如果在 HP-UX 系统中以 Unicode (UCS2) 或 UTF-8 存储的永久性数据发生兼容性问题,则可以生成一个简单转换脚本,以搜索出现的每个不正确的 UCS2 或 UTF-8 值,并根据表 2-20 “简体中文新旧 Unicode 字符之间的映射” 中的映射将其转换为正确的值。

表 2-20 简体中文新旧 Unicode 字符之间的映射

旧 UCS2UCS2旧 UTF-8UTF-8字符名
0x22250x20160xe288a50xe28096双竖线

 

对繁体中文的更正

修补软件更正了在繁体中文的 Big-5/EUC 和 Unicode (UCS2)/UTF-8 之间转换时发生的几个字符映射错误。

big5 编码和 UCS2/UTF-8 之间转换时,Unicode 转换表映射中缺少双字节的空格字符:

表 2-21 big5/Unicode 的 iconv 表中的更改

big5错误的 UCS2正确的 UCS2字符名
0xA140  0x3000双字节的空格

 

下表概括了适用于 eucTW 和 UCS2 之间转换的更改。

表 2-22 eucTW/Unicode 的 iconv 表中的更改

eucTW错误的 UCS2正确的 UCS2字符名
0xa1a60x30fb0x2022项目符号
0xa1b70x20140x2013短划线
0xa1b90x20130x2014长划线
0xa1b60xfe310xff5c双字节竖线
0xa1b8 0xfe320xfe31做表用的长竖线
0xa1ea 0x20320x2035开音符
0xa1eb0x20350x2032闭音符
0xa2b90x22640x2266小于等于符号
0xa2ba0x22650x2267大于等于符号
0xa2c20xfe660xfe65大于符号
0xa2c30xfe650xfe66双字节的小等号
0xa2de0xff5c0x2223除号
0xa2e10xfe670xff0f双字节斜线分隔符
0xa2e40xffe50x00a5日元符号
0xa2e60xffe00x00a2分符号
0xa2e70xffe10x00a3镑符号

 

eucTW 和 UCS2 或 UTF-8 之间的 iconv 转换可能受到影响。

使用 UCS2/UTF-8 进行的 Big-5 转换并不直接受到影响,因为只添加了一个缺少的表条目。

eucTW=ucs2ucs2=eucTWbig5=ucs2ucs2=big5 iconv 转换器表将受到影响。这些表由 UCS2 和 UTF-8 转换共享。

预计不会发生兼容性问题。但是,如果在 HP-UX 系统中以 Unicode (UCS2) 或 UTF-8 存储的永久性数据发生兼容性问题,则可以生成一个简单转换脚本,以搜索出现的每个不正确的 UCS2 或 UTF-8 值,并根据表 2-23 “繁体中文新旧 Unicode 字符之间的映射” 中的映射将其转换为正确的值。

表 2-23 繁体中文新旧 Unicode 字符之间的映射

旧 UCS2UCS2旧 UTF-8UTF-8字符名
0x30fb0x20220xe383bb0xe280a2项目符号
0x20140x20130xe280940xe28093短划线
0x20130x20140xe280930xe28094长划线
0xfe310xff5c0xefb8b10xefbd9c双字节竖线
0xfe320xfe310xefb8b20xefb8b1做表用的长竖线
0x20320x20350xe280b20xe280b5开音符
0x20350x20320xe280b50xe280b2闭音符
0x22640x22660xe289a40xe289a6小于等于符号
0x22650x22670xe289a50xe289a7大于等于符号
0xfe660xfe650xefb9a60xefb9a5大于符号
0xfe650xfe660xefb9a50xefb9a6双字节的小等号
0xff5c0x22230xefbd9c0xe288a3除号
0xfe670xff0f0xefb9a70xefbc8f双字节斜线分隔符
0xffe50x00a50xefbfa50xc2a5日元符号
0xffe00x00a20xefbfa00xc2a2分符号
0xffe10x00a30xefbfa10xc2a3镑符号

 

对日语的更正

修补软件更正了在 Shift-JIS/EUC 和 Unicode (UCS2)/UTF-8 之间转换时发生的四个日语字符映射错误。

下表概括了适用的更改。

表 2-24 日语的 iconv 表中的更改

sjiseucJP错误的 UCS2正确的 UCS2字符名
0x81500xA1B10xFFE30x203E上划线
0x815C0xA1BD0x20150x2014长划线
0x818F0xA1EF0xFFE50x00A5日元符号
N/A0x8FA2B70x02DC0xFF5E双字波浪符

 

受影响的 iconv 转换是 sjis 和 UCS2 或 UTF-8 之间的转换以及 eucJP 和 UCS2 或 UTF-8 之间的转换。

sjis=ucs2ucs2=sjiseucJP=ucs2ucs2=eucJP iconv 转换表将受到影响。这些表由 UCS2 和 UTF-8 转换共享。

预计不会发生兼容性问题。但是,如果在 HP-UX 系统中以 Unicode (UCS2) 或 UTF-8 存储的永久性数据发生兼容性问题,则可以生成一个简单转换脚本,以搜索出现的每个不正确的 UCS2 或 UTF-8 值,并根据表 2-25 “日语新旧 Unicode 字符之间的映射” 中的映射将其转换为正确的值。

表 2-25 日语新旧 Unicode 字符之间的映射

旧 UCS2UCS2旧 UTF-8UTF-8字符名
0xFFE30x203E0xefbfa30xe280be上划线
0x20150x20140xe280950xe28094长划线
0xFFE50x00A50xefbfa50xc2a5日元符号
0x02DC0xFF5E0xcb9c0xefbd9e双字波浪符

 

对朝鲜语的更正

修补软件为朝鲜语 Unicode (UCS2)/UTF-8 字符映射不符合地址标准的问题提供了缺陷修复方法。

当前提供的朝鲜语 iconv 转换器表除了不符合朝鲜语国家标准 KSC-5700,还不符合 Unicode 2.1 和 ISO 10646(包括 1997 修订版)标准。所有知名的标准组织都将当前的映射视为过时的映射。

增强功能为 eucKR 和 Unicode/UTF-8 之间的转换提供了一组符合标准的 iconv 转换器表。具体来说,过时的 0x3d2e-0x4dff 区域已重新映射到用于朝鲜语的 Unicode 2.1 中指定的 0xac00-0xd7ff 区域。

如果不进行该修改,则无法与符合标准(遵守 Unicode 2.1/ISO 10646/KSC-5700 标准)的任何其他系统共享数据。

受影响的 iconv 转换是 eucKR 和 UCS2 或 UTF-8 之间的任何转换。

该修改影响的 iconv 转换表是 eucKR=ucs2ucs2=eucKR。这些表由 UCS2 和 UTF-8 转换共享。

预计不会发生兼容性问题。但是,如果在 HP-UX 系统中以 Unicode (UCS2) 或 UTF-8 存储的永久性数据发生兼容性问题,建议在安装该修复程序之前,先保存并重命名以前安装的 ucs2=eucKR 表。然后,可以使用该旧表将永久性数据转换回 eucKR,再重新转换为正确的 Unicode/UTF-8 表示形式。

Japan Vendor Council iconv 转换器 [11i v1.6]

已引入了新的 iconv 转换器,可在日语计算环境中实现更高的数据共享互操作性。下列各项与该更改有关:

  • 现在提供的新的日语 iconv 转换表符合 Open Group Japanese Vendor Council (TOG/JVC) CDE/Motif Technical 工作小组建议,从而确保在日语计算环境中实现 ISO 10646/Unicode/JIS X0221 的互操作性。

    注释:JIS X0221 是日语国家标准,等效于 ISO-10646:1993 和 Unicode 2.1。

    这些表将 HP 的 EUC 和 Shift-JIS (SJIS) 字符转换为通过严格的 JIS X0201 解析以及 Microsoft Unicode 和 UTF-8 映射而指定的字符。在 HP-UX 中已经支持这些 JIS X0221 扩充的转换映射。这些新转换器需要 0.6 MB 诱,�海

    表 2-26 “新增的 iconv 转换器” 显示了八个新增的 iconv 转换器表,提供这些表是为了支持在 EUC 及 Shift-JIS (SJIS) 与 Unicode 及 UTF-8 之间来回映射时使用的备用映射。

    表 2-26 新增的 iconv 转换器

    转换

    解析

    eucJP0201 <-> ucs2

    JIS X0201
    eucJPMS <-> ucs2Microsoft
    sjis0201 <-> ucs2JIS X0201

    sjisMS <-> ucs2

    Microsoft

     

    表 2-27 “SJIS 与 Unicode 映射之间的映射差异” 说明了 SJIS 与 Unicode 字符映射的其他解析规则之间进行转换时转换器表之间的映射差异。

    注释:HP-UX 中提供有 JIS X0201 扩充的 (Unix) 映射(在此表中称为 SJIS)。

    表 2-27 SJIS 与 Unicode 映射之间的映射差异

    SJIS

    sjis0201 UCS2 映射SJIS UCS2 映射sjisMS UCS2 映射

    0x5C

    0x00A50x005C0x005C

    0x7E

    0x203E0x007E0x007E

    0x8150

    0xFFE30x203E0xFFE3
    0x815F0x005C0xFF3C0xFF3C

    0x818F

    0xFFE50x00A50xFFE5
    0x815C

    0x2014

    0x2014

    0x2015

    0x8160

    0x301C

    0x301C

    0xFF5E

    0x8161

    0x2016

    0x2016

    0x2225

    0x817C

    0x2212

    0x2212

    0xFF0D

    0x8191

    0x00A2

    0x00A2

    0xFFE0

    0x8192

    0x00A3

    0x00A3

    0xFFE1

    0x81CA

    0x00AC

    0x00AC

    0xFFE2

     

    表 2-28 “EUC 与 Unicode 映射之间的映射差异” 说明了 EUC 与 Unicode 字符映射的其他解析规则之间进行转换时转换器表之间的映射差异。

    注释:HP-UX 中提供有 JIS X0201 扩充的 (Unix) 映射(在此表中称为 eucJP)。

    表 2-28 EUC 与 Unicode 映射之间的映射差异

    EUC

    eucJP0201 UCS2 映射eucJP UCS2 映射eucJPMS UCS2 映射

    0x5C

    0x00A50x005C0x005C

    0x7E

    0x203E0x007E0x007E

    0xA1B1

    0xFFE30x203E0xFFE3
    0xA1C00x005C0xFF3C0xFF3C

    0xA1EF

    0xFFE50x00A50xFFE5
    0xA1BD

    0x2014

    0x2014

    0x2015

    0xA1C1

    0x301C

    0x301C

    0xFF5E

    0xA1C2

    0x2016

    0x2016

    0x2225

    0xA1DD

    0x2212

    0x2212

    0xFF0D

    0xA1F1

    0x00A2

    0x00A2

    0xFFE0

    0xA1F2

    0x00A3

    0x00A3

    0xFFE1

    0xA2CC

    0x00AC

    0x00AC

    0xFFE2

    0x8FA2B7

    0x007E

    0xFF5E0xFF5E

    0x8FA2C3

    0x00A60x00A60xFFE4

     

  • TOG/JVC 已经为多种字符正式确定了三个可能的转换器映射。这些映射包括:

    1. 基于严格的 JIS X0201 标准解析的 JIS X0221

    2. JIS X0221 扩充映射,能够更好地共存于当前基于 ASCII 的(例如 Unix)环境中

    3. 基于 Microsoft 日语映射的 JIS X0221

针对希腊语欧元符号支持的 iconv 增强功能 [11i v1.6]

有关支持希腊语欧元符号的 iconv 增强功能的详细信息,请参阅“支持希腊语欧元符号 [11i v1.6]”

用于日语字符的大型机 iconv 转换器 [11.0 修补软件、11i v1 修补软件、11i v2]

ShiftJIS/eucJP/UCS2NEC-JIPS/Hitachi-KEIS/Fujitsu-JEF 之间使用的大型机 iconv 转换器在 HP-UX 11i v1.0 推出。本发行版包含对 JIS 标准字符映射错误的多个修复方法。

本发行版的大型机 iconv 转换表包括对那些大型机编码集的基本部分中的 JIS 标准字符映射错误的大量修复方法。/usr/share/doc 目录下的 MFConvChanges.jipsMFConvChanges.keisMFConvChanges.jef 中详细说明了这些更改。

此外,本发行版的大型机 iconv 转换方法包括一个用于处理输入缓冲区末尾不完整的 shift 序列的修复方法。

对客户的影响

如果客户已经使用过 HP-UX 11i v1 版的大型机 iconv 转换器,然后使用此版本,则结果会有所不同,因为已经对 JIS 标准字符映射进行了修复。建议在安装本发行版之前保存并重命名以前安装的表。然后,可以使用旧表转换回永久性数据,再使用新表重新转换为正确的表示形式。

如果输入缓冲区中的最后一个字符可能是有效字符或不完整的 shift 序列,iconv(3C) 将返回 EINVAL。当该字符是输入文件的最后一个字符时,如果在该字符之后不追加其他伪数据(如 NULL),iconv(3C) 将不会成功返回。该字符对于 jipsj0x1a,对于 jipsec/jipsek0x3f,对于 keis7c/keis7k/keis8c/keis8k0xa(表示可能是一个控制字符或不完整的 shift 序列)。

兼容性

预计不会发生兼容性问题。但是,如果在 HP-UX 系统中存储的永久性数据发生兼容性问题,建议在安装本发行版之前,先保存并重命名以前安装的表。然后,可以使用旧表转换回永久性数据,再使用新表重新转换为正确的表示形式。

性能

无性能问题。

文档资料

  • 日语系统环境用户指南》(日语版)

  • iconv(3C) 联机帮助页

未来的计划

大型机 iconv 转换器将继续跟随未来 HP-UX 对 Unicode 标准的支持而做相应的改进。

打印版本
保密声明 使用本网站表示您同意其使用条件
© 2001-2003, 2005 - Hewlett-Packard Development Company, L.P.