gpt4 book ai didi

unicode - EM Dash #151 有什么区别?和#8212;?

转载 作者:行者123 更新时间:2023-12-03 09:16:23 25 4
gpt4 key购买 nike

我有一个 ASCII 文件,其中包含一个 EM Dash(— 或 HTML 中的 —)。十六进制值为 0x97。当我们通过一个应用程序传递这个文件时,它以 UTF-8 格式到达,并将字符转换为 0xC297,即 —在 HTML 中。但是,当我们通过不同的应用程序传递这个文件时,它会将字符转换为 0xE28094 或 — .

什么会导致这些应用程序以不同的方式转换这些字符?它可能是代码页设置吗?

最佳答案

——错了。当您使用数字字符引用时,数字是指 Unicode 代码点。对于 256 以下的数字,与 ISO-8859-1 中的代码点相同。在 8859-1 中,字符 151 位于“C1 控制代码”中,而不是破折号或任何其他可见字符。

出现混淆是因为字符 151 是 Windows 代码页 1252(西欧)中的破折号。许多人认为 cp1252 与 ISO-8859-1 是一回事,但实际上并非如此:C1 范围(128 到 159)中的字符是不同的。

第一个应用程序将您的“ASCII”文件*读取为 ISO-8859-1,但实际上它可能是 cp1252,您需要一种方法来提示应用程序了解它所期望的编码。

(*: 如果文件中存在高位集字符,则“ASCII”是用词不当。您可能指的是“ANSI”,这实际上也是用词不当,但在 Windows 世界中,它的意思是“文本编码在当前系统默认代码页中”。)

关于unicode - EM Dash #151 有什么区别?和#8212;?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/631406/

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