JIS X 208半角形式切换方法及编码映射确认问询
关于JIS X 0208与ISO-2022-JP半角/全角切换的转义字符说明
核心结论
- 切换到半角形式(JIS X 0201半角ASCII/JISCII)的标准转义序列是
ESC ( J(十六进制表示为0x1B 0x28 0x4A) - 全角反向实心符(U+FF3C)、全角实心符(U+FF0F)的半角对应形式,确实依赖切换到JIS X 0201编码空间实现;其中半角实心符也可通过ASCII编码空间(
ESC ( B)输出,因为ASCII是JISCII的子集
详细解释
1. ISO-2022-JP的编码空间切换逻辑
ISO-2022-JP通过转义序列切换不同编码平面:
ESC ( B:切换到ASCII编码空间(半角,覆盖U+0020-U+007E范围)ESC ( J:切换到JIS X 0201的JISCII编码空间(半角,包含ASCII及日文专属半角标点)ESC $ @/ESC $ B:切换到JIS X 0208编码空间(全角,包含各类全角汉字、标点)
2. 目标字符的具体映射
- 全角反向实心符(U+FF3C):在JIS X 0208中对应位置为1-02-7C,需处于JIS X 0208空间输出;半角形式(U+005C)需先发送
ESC ( J切换到JIS X 0201,再发送字节0x5C。 - 全角实心符(U+FF0F):在JIS X 0208中对应1-02-2F;半角形式(U+002F)可通过两种方式输出:发送
ESC ( J后发0x2F,或发送ESC ( B后发0x2F,两者效果一致。
3. Ubuntu下的验证命令示例
可通过以下命令验证转义序列效果:
# 输出全角反向实心符 echo -e '\x1B\x24\x40\x21\x7C' | iconv -f ISO-2022-JP -t UTF-8 # 输出半角反向实心符(JIS X 0201方式) echo -e '\x1B\x28\x4A\x5C' | iconv -f ISO-2022-JP -t UTF-8 # 输出全角实心符 echo -e '\x1B\x24\x40\x21\x2F' | iconv -f ISO-2022-JP -t UTF-8 # 输出半角实心符(JIS X 0201方式) echo -e '\x1B\x28\x4A\x2F' | iconv -f ISO-2022-JP -t UTF-8 # 输出半角实心符(ASCII方式) echo -e '\x1B\x28\x42\x2F' | iconv -f ISO-2022-JP -t UTF-8
内容的提问来源于stack exchange,提问作者malat
相关产品推荐
相关产品推荐

