如何以编程方式获取字体支持的字符编码?
有没有办法使用 C# 来获取字体支持的字符编码?
Is there a way, using C#, to get the character encoding a Font supports?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有没有办法使用 C# 来获取字体支持的字符编码?
Is there a way, using C#, to get the character encoding a Font supports?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
简短的回答:否
在 .Net 世界中,没有代码页:一切都是以 Unicode 完成的。
字体是映射到 Unicode 代码点(32 位整数)子集的字形(字符的图形表示)的集合。
CLR 字符串是 System.Char(无符号 16 位整数)的 UTF-16 编码列表。这意味着某些 Unicode 代码点(0x00000080 及更高)在字符串中表示为一对 16 位字符,根据 UTF-16 计算。在内部[1],字符串从 UTF-16 转换为 UTF-32,并且现在的 32 位字符用于查找适当的字形。
[1]无论如何,从逻辑上讲。我不知道实际的实施细节是什么。
Short answer: No
In the .Net world, there are not code pages: everything is done in Unicode.
A font is a collection of glyphs (a graphic representation of a character) mapped onto a subset of Unicode codepoints (32-bit integers).
CLR strings are UTF-16 encoded lists of System.Char (unsigned 16-bit integers). This means that certain Unicode codepoints (0x00000080 and higher) are represented in the string as a pair of 16-bit characters, computed according to UTF-16. Internally[1], the string is converted from UTF-16 to UTF-32 and the now-32-bit characters are used to look up the appropriate glyph.
[1]Logically, anyway. I've got no idea what the actual implementation details are.