Shift_JIS 中的反斜杠和波浪字符是否有正确的编码?

Are there correct encodings for the backslash and tilde characters in Shift_JIS?

或者这两个字符根本不存在于Shift_JIS中?

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

虽然有很多关于 ¥ 如何接管 \~ 的明确信息,但我无法找到任何明确的说明\~ 是否根本不存在于 Shift_JIS 中,或者是否有替代(可能是多字节)编码来处理这两个移位的 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 不包含全角波浪线,但 Shift_JIS 等同于 Windows(Microsoft 代码页 932)包含全角波浪线(FULLWIDTH TILDE,Unicode 中的 U+FF5E)。