所以,我有一个解析 xml 的实现,其中包括维基百科主页的位置和字符串。解析是用 rapidxml 完成的,之后由 http://utfcpp.sourceforge.net/ 将字符串从 UTF-8 转换为 UTF-32。 .然后在 freetype 中使用 UTF-32 代码:
unsigned long c = FT_Get_Char_Index(face,*p);
FT_Load_Glyph(face,c,FT_LOAD_RENDER);
其中 *p 是 UTF-32 字符代码。然后在 OpenGL 中呈现此字形。
现在,我似乎无法使用 cryllic 字符,也无法使用任何中文、日文或越南文,我确信 *p 对应于正确的代码,如果能得到任何指示,我将不胜感激。
对于这些字体,使用 Microsofts arial.ttf,来自 Arch linux package从我在 fontviewing 程序中看到的,它应该包含我想要的字符。
最佳答案
两点建议:
首先,你打过FT_Select_Charmap吗?指定您使用的是 Unicode 编码?
FT_Select_Charmap(face , ft_encoding_unicode);
其次,并非所有 Arial 字体都包含所有字符,并且某些字体查看器(无论如何在 Windows 上)可能会通过自动替换不同字体的字形来产生误导。尝试 ArialUni.ttf如果你能找到它。
关于c++ - FreeType 中的 Unicode 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11501251/