Shift_JIS中反斜杠和波浪号字符的编码正确吗?

时间:2019-06-29 17:43:22

标签: character-encoding iconv shift-jis

还是在Shift_JIS中根本不存在这两个字符?

Shift_JIS字符编码方案中的前128个字符与ASCII匹配,除了两个以外:0x5C是日元符号(¥)而不是反斜杠,而0x7E是上划线()而不是波浪号。

尽管有很多关于如何¥接管\~的明确信息,但是我无法找到关于{ {1}}和\在Shift_JIS中根本不存在,或者是否存在替代(可能是多字节)编码来处理这两个置换的ASCII字符。

当我尝试使用node-iconv~\进行编码时,会引发错误。

iconv-lite~¥都编码为0x5C,并将\都编码为0x7E。解码时,iconv-lite当前(不幸的是)将0x5C解码为~,将0x7E解码为\,等待对错误报告的响应。

1 个答案:

答案 0 :(得分:2)

Shift_JIS的字符集在JIS(日本工业标准)中定义。

字符编码Shift_JIS将JIS X 0201用于半角字符集,并将JIS X 0208用于全角字符集。

问题中的

\~表示ISO / IEC 8859-1(Latin-1)中的半角反斜杠和波浪号,对吗? JIS X 0201(半角字符集)不包含这些字符(请参见https://en.wikipedia.org/wiki/JIS_X_0201)。

答案是\~在Shift_JIS中都不存在。

FYR,JIS X 0208包含全角反斜杠(FULLWIDTH REVERSE SOLIDUS,Unicode中的U + FF3C)。 JIS X 0208不包含全角波浪号,但是Windows中的Shift_JIS等效项(Microsoft代码页932)包含全角波浪号(FULLWIDTH TILDE,Unicode中的U + FF5E)。