2010-04-20 38 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