还是在Shift_JIS中根本不存在这两个字符?
Shift_JIS字符编码方案中的前128个字符与ASCII匹配,除了两个以外:0x5C是日元符号(¥
)而不是反斜杠,而0x7E是上划线(‾
)而不是波浪号。
尽管有很多关于如何¥
和‾
接管\
和~
的明确信息,但是我无法找到关于{ {1}}和\
在Shift_JIS中根本不存在,或者是否存在替代(可能是多字节)编码来处理这两个置换的ASCII字符。
当我尝试使用node-iconv对~
或\
进行编码时,会引发错误。
iconv-lite将~
和¥
都编码为0x5C,并将\
和‾
都编码为0x7E。解码时,iconv-lite当前(不幸的是)将0x5C解码为~
,将0x7E解码为\
,等待对错误报告的响应。
答案 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)。