我试图在linux下运行的设备上显示像£这样的字符。 它使用的是utf-8字符集格式。 当我显示一个包含特殊字符的字符串时,它也会显示其他字符。 如果我在控制台上打印字符串它似乎没问题,但是当我解析字符串以在屏幕上加载每个字母字体时它变得很奇怪并且输出不正确。
有没有人经历过这样的事情或者能给我一些建议。
谢谢。
答案 0 :(得分:1)
如果字符串是UTF-8,则需要使用TTF_RenderUTF8_Solid()之类的调用。这是真正的字体。
如果您的字体有自己的字体和字形,则需要将UTF-8字符串转换为UTF-16(最常用)或UTF-32(如果支持i18n),然后使用它索引到字形表。
当字体超过ASCII限制时,您无法将utf-8字符串的单个字节解析为有效字符。
请参阅以下代码段:http://unicode.org/faq/utf_bom.html