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

标签 character-encoding iconv shift-jis

或者这两个字符在 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/

相关文章:

java - UTF-8写入xml成功

encoding - 如何通过管道 tail -f 到 iconv 命令?

java - redis中的字符编码/解码

Python正则表达式将字符串中的非ascii字符转换为最接近的ascii等价物

c++ - iconv编码转换问题

unicode - IBM 大型机上 Shift-JIS 的日语 COBOL 代码;传输到PC后如何表示?

android - 为什么 Yen (U+00A5) 符号的 Android Shift-JIS 编码会产生 -4,-4 ?

c - 将文本追加到现有的 UTF16LE 文件

macos - 如何解决 Mac OS X 上 iconv 的奇怪问题