2010-04-20 199 views
0

我试图在Linux下运行的设备上显示像英镑一样的字符。 它使用的是utf-8字符集格式。 当我得到显示包含特殊字符的字符串时,它也显示其他字符。 如果我在控制台上打印字符串,它看起来好,但是当我解析字符串来加载屏幕上的每个字母字体时,它变得很奇怪,并且输出不正确。显示带有特殊字符的字体 - UTF-8

有没有人经历过这样的事情,或能够给我一些建议。

谢谢。

+0

你怎么显示的字符串,在第一种情况下,你用哪个即库或者功能? – quinmars 2010-04-20 12:09:52

+0

控制台我使用printf(),对于我使用sdl的字体。 – seven 2010-04-20 13:18:22

+0

你正在使用什么语言环境? – fpmurphy1 2010-04-20 13:39:31

回答

1

如果字符串是UTF-8,则需要使用诸如TTF_RenderUTF8_Solid()的调用。这对于True Type字体。

如果你有你自己的字体和字体为你的字体,那么你需要将你的UTF-8字符串转换为UTF-16(最常用)或UTF-32(如果支持i18n),然后使用它索引到字形表中。

当字体跨越ASCII限制时,无法将utf-8字符串的单个字节解析为有效字符。

参考这些代码片段:http://unicode.org/faq/utf_bom.html

+0

谢谢你,我现在就试试看。 – seven 2010-04-20 19:58:14