我们在项目开发过程中经常会碰到如下几个名词" EUC编码 ", " EUC_JP编码 ", " EUC U90 ", " EUC S90 ", " Shift_JIS"等等,那么这些名字表示的编码表示什么含义呢,本文旨在讲述日文编码的发展,以及解释以上各个日文编码名词的真正含义,相信对你的日常开发会有帮助。 负责日本文字编码工作的两大机构 众所周知,在计算机上只能存储二进制的数字0,1,而在日常生活中用来交流的文字(例如:英文字母 A ),在计算机中是无法存储的,为了解决文字在计算机上的存储问题,我们必须对文字进行数值化,也就是传说中的“ 编码 ”。例如在ASCII编码体系中英文字符'A '的码值为“ 0x41 ”,所以如果运用ASII编码,' A '存储在计算机中就是' 1000001 '。 然而很多东方国家的文字比较庞大,不像英文字符,大小写总共就52个字母,对其编码是很简单的。日本文字假名叫常用汉字就有几千个,如何对日本文字进行编码,这确实是一个 体力 与 智力 并存的工作。很显然,你要想对日文进行编码,首先你要做的就是你得知道日本有多少个文字(平假片假名)呢?这个问题恐怕不是一般人能够回答的。所以在这个世界上有两个组织机构来做这个工作,这就是传说中的 ISO 和 日本国标(JIS: Japan Industry Standard) .这两个组织负责收集所有日本语种所要到的文字,然后对其进行编码工作。 ISO-2022-JP的日文编码 ISO 2022,全称ISO/IEC 2022,由国际标准化组织(ISO)及国际电工委员会(IEC)联合制定,是一个使用7位编码表示汉语文字、日语文字或朝鲜文字的方法。 ISO 2022等同于欧洲标准组织(ECMA)的ECMA-35、中国国标GB 2311、日本工业规格JIS X 0202(旧称JIS C 6228)及韩国工业规格KS X 1004(旧称KS C 5620)。具体可参考:http://zh.wikipedia.org/w/index.php?title=ISO/IEC_2022&;variant=zh-cn。 关于这些编码的详细内容可以参考如下的RFC文档: http://tools.ietf.org/html/rfc2237 RFC 1468, ISO-2022-JP的规格 RFC 2237, ISO-2022-JP-1的规格 RFC 1554, ISO-2022-JP-2的规格 以上编码体系在我们的Symfoware中用的不是很多 日本国标(JIS)的日文编码 JIS (Japanese Industry Standard),(http://www.jsa.or.jp) 日本工业标准协会。和中国的GB一样,是制定日本国内各种标准的组织,这个组织也复杂对日本文字进行编码,以用来进行信息交换。 JIS编码是8位编码类似于ISO/IEC-8859,JIS编码方案经历的如下几个版本的变更: JIS X 0201 (JIS C 6220) (具体请参考http://zh.wikipedia.org/w/index.php?title=JIS_X_0201&;variant=zh-cn) …… JIS X 0208 (具体请参考http://www.gaoshukai.com/20/06/0009/) …… JIS X 0213 (2000年) JIS 2004是对JIS X 0213的修正 (具体请参考:http://www.asahi-net.or.jp/~ax2s-kmtn/ref/jisx0213/index.html) 大体上来说,从JIS X 0201到JIS X 0213,每次版本的演进,都会加入新的日文汉字,具体如下:
其它软件厂商的日本编码的实现Miscrosoft 对日文的支持 MicroSoft要想对日文进行编码,首先要知道日文有多少文字,正如前面所说的,这是个很难回答的问题,而且微软也没有必要去做这件事情,因为这个事情JIS和ISO已经做了。微软Windows操作系统上的日文编码没有直接使用ISO或者JIS的编码系统,而是为了适应其操作系统的特点,参考了JIS标准,自己开发了一套编码系统。这就是我们平时所讲的 Shift_JIS 或是 SJIS .关于这个编码系统的详细内容请参考:http://www.microsoft.com/globaldev/reference/dbcs/932.mspx. 既然我们已经说了, Shift_JIS 编码系统是参考了 JIS 编码系统,那么这两个编码之间的关系是什么呢?具体如下所示:
ASCII控制字符 (0x00-0x1F、0x7F) JIS X 0201标准内的半角标点及片假名(0xA1-0xDF) 在部分操作系统中,0xA0用来放置“不换行空格”。
“第一位字节”使用0x81-0x9F、0xE0-0xEF (共47个) “第二位字节”使用0x40-0x7E、0x80-0xFC (共188个) 使用者定义区 “第一位字节”使用0xF0-0xFC (共47个) “第二位字节”使用0x40-0x7E、0x80-0xFC (共188个) 在Shift_JIS编码表中,并未使用0xFD、0xFE及0xFF。 Unix系操作系统对日文的支持Unix系操作系统下的日文编码也没有直接采用ISO和JIS的标准,它也创建了另一个编码系统EUC (又称为UJIS)。 为了说明EUC, EUC-JP, EUC-U90和EUC-S90之间的关系,我引用了如下一段关于这些编码( 注意: 下面的EUC-JP就是指U90, EUC-JISX0213就是指S90)的定义的英文资料:
Unicode编码系统下的日文编码Unicode就是为了解决统一的全球符号的编码问题,关于Unicode编码系统下日本的文字的编码,可以参考:http://www.unicode.org/charts/ .这里不作详细阐述。 |
欢迎光临 TGFC Lifestyle (http://club.tgfcer.com/) | Powered by Discuz! 6.0.0 |