lin*_*ize 7 c++ unicode winapi mfc visual-c++
如何检查unicode字符是否为全宽?
我使用Win32/MFC
例如,?
是全宽,A
不是全宽,?
是全宽,F
不是全宽.
你需要的是检索角色的东亚宽度.您可以通过解析Unicode字符数据库中的EastAsianWidth.txt文件来完成此操作.我找不到返回此信息的Win32 API,但在Python中,您可以使用unicodedata.east_asian_width(unichr)
.
有关问题的背景和更多信息,请参阅附录#11.
Jam*_*nze -4
“全宽”是什么意思?字符的宽度取决于其显示的字体。
如果你的意思是不是单字节字符,目前还不清楚。单字节字符采用什么编码?在 UTF-8 中,当(且仅当)代码点小于 128 时,它才是单字节字符;如果您使用 UTF-16(可能,因为您在 Windows 下),只需将字符与 128 进行比较。ISO 8859-1 中的单字节编码(另一种广泛传播的编码):与 256 进行比较。对于小于256,UTF-16 单位在数字上与 ISO 8859-1(有时称为 Latin-1)中的代码点相同。对于单字节编码 ASCII(现在几乎从未使用过,但大多数常见编码在前 128 个代码点上与它相同),任何小于 128 的值都是好的。
归档时间: |
|
查看次数: |
745 次 |
最近记录: |