日文编码 - 知乎专栏

文章推薦指數: 80 %
投票人數:10人

1 仅适用于双字节Shift JIS字符集日文编码模式只能编码字节位于0x8140至0x9FFC和0xE040至0xEBBF(十六进制)的双字节Shift JIS字符。

该集合中的字符可以在Rikai的Shift ... 首发于你今天真好看无障碍写文章登录/注册1仅适用于双字节ShiftJIS字符集日文编码模式只能编码字节位于0x8140至0x9FFC和0xE040至0xEBBF(十六进制)的双字节ShiftJIS字符。

该集合中的字符可以在Rikai的ShiftJISKanji字符索引表中找到。

2转为字节要在日文模式下编码双字节ShiftJIS字符,必须首先将字符转换为字节。

例如,字符茗荷可以转换如下:茗→0xE4AA荷→0x89D73编码日文模式有两种方法用于编码双字节日文字符。

一种方法用于字节在0x8140到0x9FFC范围内的字符,另一种方法用于字节的范围为0xE040到0xEBBF的字符。

这两种方法概述如下:3.1对于字节位于0x8140到0x9FFC范围内的字符上面的例子中,字符荷在ShiftJIS中是0x89D7,因此它在0x8140到0x9FFC范围内。

第一步是从十六进制值中减去0x8140。

在这个例子中:0x89D7-0x8140=0x0897结果是0x0897。

将该数字拆分为其最高有效字节及其最低有效字节:0x0897的最高有效字节是0x080x0897的最低有效字节是0x97接下来,将最高有效字节乘以0xC0,然后加上最低有效字节:(0x080xC0)+0x97=(0x600)+0x97=*0x697最后,将结果转换为13位二进制数字:0x697=00110100101113.2对于字节位于0xE040到0xEBBF范围内的字符上面的例子中,字符茗在ShiftJIS中是0xE4AA,因此它在0xE040到0xEBBF的范围内。

第一步是从十六进制值中减去0xC140。

在这个例子中:0xE4AA-0xC140=0x236A结果是0x236A。

将该数字拆分为其最高有效字节及其最低有效字节:0x236A的最高有效字节是0x230x236A的最低有效字节是0x6A接下来,将最高有效字节乘以0xC0,然后加上最低有效字节:(0x230xC0)+0x6A=(0x1A40)+0x6A=*0x1AAA最后,将结果转换为13位二进制数字:0x1AAA=11010101010104合并编码字节要编码的字符串是茗荷。

这两个字符在上述步骤中被转换成13位二进制。

将两个二进制字符串放在一起完成编码。

110101010101000110100101115增加指示符在第四步的结果前加上模式和字符计数指示符,最终结果为:10000000001011010101010100011010010111编辑于2017-02-2518:43二维码​赞同2​​3条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录你今天真好看瞎扯,以及有趣的故事。



請為這篇文章評分?