gpt4 book ai didi

unicode - 多字节字符集中的换行控制字符

转载 作者:行者123 更新时间:2023-12-01 16:15:24 25 4
gpt4 key购买 nike

我有一些 Perl 代码,可以将换行符和换行符转换为规范化形式。输入文本是日语,因此会有多字节字符。

是否仍然可以逐字节进行此转换(我认为目前可以),或者我是否必须检测字符集并启用 Unicode 支持?换句话说,流行的编码(Shift-JIS、EUC-JP、UTF-8、ISO-2022-JP)是否使用字节作为其字符集的一部分,可能会被误认为是 ASCII 控制字符?

我只需要 CR 和 LF 即可工作。

更新:添加了 ISO-2022-JP。这是看起来最麻烦的一个,其时髦的转义序列......

最佳答案

您提到的 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

在各种字符集之间来回切换的转义序列字符为:

0x1B, 0x28, 0x24, 0x40, 0x42, and 0x4A

如您所见,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

同样,CR 和 LF 没有重叠。

关于unicode - 多字节字符集中的换行控制字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/724247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com