跳转到内容

字符编码/代码表/EBCDIC/代码页 930

来自 Wikibooks,开放世界中的开放书籍

CCSID 930(有时称为CP930或代码页 930)是 IBM 为表示日语文本创建的几个日语 EBCDIC 代码页之一。它通常用于 IBM z/OS 和 IBM System i 操作系统。

它编码半角片假名、全角片假名、平假名和汉字。

技术细节

[编辑 | 编辑源代码]

CCSID 930 使用一种有状态的 EBCDIC 编码方案,使用 1 个字节编码半角片假名,使用 2 个字节编码所有其他日语字符。[1] 单字节部分是CCSID 290,也称为 EBCDIK(扩展二进制编码十进制交换假名)。双字节部分是代码页 300(CCSID 300、16684 和 24876),[2][3][4][5][6] 与 CCSID 939 共享。[7][8]如果只使用与拉丁字符混合的半角片假名,这是 80 年代之前的标准,则 CCSID 930 可以被认为是纯 8 位编码。当使用其他类型的日语或全角字符时,它是一种多字节编码,其中 Shift-Out 0x0E 和 Shift-In 0x0F 字节用于指示双字节编码的开始和结束。

最新版本的 CCSID 930(CCSID 1390)支持 JIS X 0213。[9]

它是由英国 IBM Hursley 实验室的 Alan Lloyd Jones 发明的。[需要引用]

实际考虑

[编辑 | 编辑源代码]

CCSID 930 本身及其编码方案包含许多在实践中使使用 CCSID 930 变得困难的特殊情况(另请参阅EBCDIC 以了解 EBCDIC 标准的特殊情况),并且具有一定的实际意义。

  • 由于 Shift-In 和 Shift-Out 代码,从中间解析字节序列很困难。字节的解释需要回溯到遇到其中一个移位字节为止。
  • 虽然 CCSID 930 允许混合使用半角和全角字符文本,但许多数据库模式严格区分仅包含单字节半角片假名的列和仅包含双字节全角字符的列。这为软件开发人员提供了一种便利,可以更轻松地预测给定列大小的字节数,反之亦然。
  • 不利的一面是,以上内容意味着为了保持一致性,此类全角字符列中的拉丁文本必须输入或转换为全角字母字符(在进行数据库搜索时很有趣),以便将其编码为双字节字符。
  • 当数据库列隐式定义为纯全角字符文本时,Shift-In 和 Shift-Out 代码通常被省略,这导致严格意义上的编码不正确。当缺少移位代码时,通常需要使用 CCSID 290 或 CCSID 300/16684/24876 以便正确转换为其他字符集,例如更可移植的 Unicode。
  • CCSID 290/930 中小写拉丁字母 a-z 的编码与其在 EBCDIC 中的常用编码不同。这意味着,例如,检查字母“a”的程序将无法识别此编码文本中的字母“a”。EBCDIC 298 没有这个问题。

参考文献

[编辑 | 编辑源代码]
  • Lunde,Ken。CJKV 信息处理。加利福尼亚州塞巴斯托波尔:O'Reilly & Associates,1998。ISBN 1-56592-224-7
  1. Unicode 国际组件 (ICU),ibm-930_P120-1999.ucm, 2002-12-03
  2. "代码页 300 信息文档". 存档于 原始网站 于 2017-06-10。
  3. "CCSID 300 信息文档". 存档于 原始网站 于 2016-03-27。
  4. "CCSID 16684 信息文档". 存档于 原始网站 于 2016-03-27。
  5. "CCSID 24876 信息文档". 存档于 原始网站 于 2016-03-27。
  6. 代码页 CPGID 00300 (pdf) (PDF), IBM
  7. "IBM 全球化 - 编码字符集标识符 - CCSID 930". 存档于 原始网站 于 2014 年 12 月 1 日。

  8. “IBM 全球化 - 字符编码集标识符 - CCSID 939”. 存档于 原始文件,存档日期2014年12月1日。
  9. “CCSID 1390 信息文档”. 存档于 原始文件,存档日期2016年3月27日。
[编辑 | 编辑源代码]
华夏公益教科书