gpt4 book ai didi

c++ - UTF-16LE 半角和全角?意义?

转载 作者:行者123 更新时间:2023-11-27 22:40:13 33 4
gpt4 key购买 nike

我有用于打印数字的自定义打印功能。我制作了一个 ASCII 版本和一个 UTF-16LE 版本。 UTF-16LE 版本对 0-9 使用全角代码/字符,对十六进制使用 A-F。在调试我的函数时,我注意到这些字符在 Visual Studio 中看起来与 ASCII 字符略有不同,虽然这并没有打扰我,但它让我开始思考它。所以我决定在谷歌上快速搜索“Unicode halfwidth vs fullwidth”

...我发现有几页讨论“全宽”形式指的是字符的视觉宽度,而我认为“全宽”指的是编码宽度 (2字节或更多)...

这里有几页和他们的引述:

当我们有不同的字体用于大小和对齐时,“全宽” 指的是视觉宽度对我来说没有意义。

为什么“全宽”指的是视觉宽度?在 Unicode UTF-16 规范中的什么地方这样说?

是否需要使用标志选择输出为半角或全角?

最佳答案

您发现的半角假名只是 Halfwidth and fullwidth forms 的一个子集,它是代码点/字形的属性,而不是编码的属性。 UTF-16 是 Unicode 编码之一。

那些字符存在的原因是因为Unicode was designed for lossless back-and-forth conversion between legacy character sets .如果你仔细观察 Unicode blocks你会看到有很多多余的字符,比如 Ⅶ Ⅷ Ⅸ ㎆ ㎇ ㎎ ㎏ ㎐ Dz dz NJ... .它们都是纯粹出于兼容性目的,因为它们已用于某些字符集中。

另见 What issues lead people to use Japanese-specific encodings rather than Unicode?

As a Developer/Programmer, would having the choice to output as Halfwidth or Fullwidth using flags be desirable?

我个人认为没有理由使用它们,除非在极少数情况下,例如 displaying characters on a square grid .更糟糕的是,这些日语字符通常在没有清晰字体和抗锯齿(小尺寸)的情况下呈现,因此阅读时眼睛很痛。如果您在日本,您会注意到一些表格需要使用半角或全角字符而不进行自动转换,这很糟糕。

关于c++ - UTF-16LE 半角和全角?意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49566508/

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