Thi*_*ilo 4 unicode newline character-encoding cjk
我有一些Perl代码将新行和换行符转换为标准化形式.输入文本是日语,因此将有多字节字符.
是否仍然可以逐字节地进行这种转换(我认为它目前正在进行),还是我必须检测字符集并启用Unicode支持?换句话说,流行的编码(Shift-JIS,EUC-JP,UTF-8,ISO-2022-JP)是否使用字节作为其字符集的一部分,可能会被误认为是ASCII控制字符?
我只需要CR和LF就能工作.
更新:添加了ISO-2022-JP.这是一个看起来最麻烦的那个时髦的逃脱序列......
小智 5
您提到的4种编码(Shift-JIS,UTF-8,EUC-JP,ISO-2022-JP)中没有一种在日文字符中使用CR或LF字符.对于UTF-8和EUC-JP,低ascii字符和日文字符内的字节之间没有任何重叠.但是,对于Shift-JIS和ISO-2022-JP,存在重叠,但不在找到CR和LF的范围内.
For ISO-2022-JP,
First-byte range: 0x21 - 0x7E
Second-byte range: 0x21 - 0x7E
Run Code Online (Sandbox Code Playgroud)
并且在各种字符集之间来回切换的转义序列字符是:
0x1B, 0x28, 0x24, 0x40, 0x42, and 0x4A
Run Code Online (Sandbox Code Playgroud)
如您所见,ISO-2022-JP中用于编码日文字符的字符均不与CR或LF重叠.
For Shift-JIS,
First-byte range: 0x81 - 0x9F, 0xE0 - 0xEF
Second-byte range: 0x40 - 0x7E, 0x80 - 0xFC
Half-width katakana: 0xA1 - 0xDF
Run Code Online (Sandbox Code Playgroud)
同样,CR和LF没有重叠.
归档时间: |
|
查看次数: |
2297 次 |
最近记录: |