或者这两个字符在 Shift_JIS 中根本不存在?
Shift_JIS 字符编码方案中的前 128 个字符与 ASCII 匹配,除了两个字符:0x5C 是日元符号 ( ¥
) 而不是反斜杠,0x7E 是上划线 ( ‾
) 而不是波浪号。
虽然有很多关于 ¥
和 ‾
如何接管 \
和 ~
的明确信息,但我无法找到任何关于 \
和 ~
是否根本不存在于 Shift_JIS 中的明确声明,或者是否有替代(可能是多个) byte) 编码来处理这两个置换的 ASCII 字符。
当我尝试使用 node-iconv 对 \
或 ~
进行编码时,它会引发错误。
iconv-lite 将 ¥
和 \
编码为 0x5C,将 ‾
和 ~
编码为 0x7E。解码时,iconv-lite 当前(不幸的是)将 0x5C 解码为 \
,将 0x7E 解码为 ~
,等待对错误报告的响应。
最佳答案
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(Microsoft 代码页 932)中等效的 Shift_JIS 包含全角波浪线(全宽波浪线,Unicode 中的 U+FF5E)。
关于character-encoding - Shift_JIS 中的反斜杠和波浪号字符是否有正确的编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56819615/