解決freetype亂碼的問題

2021-10-14 15:37:42 字數 1108 閱讀 1480

我在嵌入式上移植了ubuntu和freetype,想用點單的方式控制螢幕顯示,卻發現freetype打出來的字是亂碼(框框框)。用l「中文」這種方式是可以顯示正確的,但l只能修飾常量,變數的,比如char chn這樣的就顯示成亂碼了。明知道是編碼問題,可是該怎麼改呢?

在網上搜了很多資料,說freetype預設支援unicode編碼,而l修飾的字元是由編譯器轉換編碼的。也就是說我需要將ubuntu的utf8編碼轉為unicode。但找了幾個網上的編碼轉換**,實驗均未果。最後是

發現我的unicode編碼是神奇的4位元組,而不是2位元組,即,在utf-16le的基礎上,每個字後面多了兩個0!在原來的轉換**基礎上加上這兩個0就好了。

#include #include//#include"unicode.h"

#include unsigned char output[4];

//單字utf8編碼長度 位元組

int get_utf8_size(unsigned char input)  

return num;

}//單字utf8 to unicode

int one_utf8_to_unicode(unsigned char* input, int utfbytes)  

return utfbytes; 

} //inbyte inputs位元組

int utf8_to_usc(unsigned char* inputs,unsigned char* outputs,int inbyte)

;    int i,bytes=0;

int midbyte=0;

int j=0;

int readbytes=0;

int readlenth=0;

int endbytes=inbyte;

while( endbytes>0 )

{bytes = get_utf8_size( *(inputs+readbytes) );

if(bytes>=0)

readlenth++;

midbyte=bytes;  

if(0==bytes)

midbyte=1;

for(i=0;i附上乙個有用的**,可以檢視轉換的編碼。

亂碼問題的解決

我們從前台頁面傳遞引數到後台,經常會遇到亂碼問題!例子 page contenttype 測試結果 解決辦法如下 不得不說,亂碼問題是在我們開發中十分常見的問題,也是讓我們程式猿比較頭大的問題!以前亂碼問題通過過濾器解決 而springmvc給我們提供了乙個過濾器 可以在web.xml中配置 修改了...

ORACLE亂碼問題的解決

使用sqlplus連線oracle資料庫的時候,老是出現?一類的字元,主要是因為 伺服器和客戶端語言設定不相同。日文環境下 伺服器端的設定為 ja16sjis,客戶端沒有作設定就出現了上述現象。請將環境變數設值為 csh setenv nls lang american japan.ja16sjis...

Servlet亂碼問題的解決

以下分析基於以下假設 編碼格式統一採用utf 8 post方式 服務端 在第一次呼叫request.getparameter時,會對parameter進行解析,如果沒有設定解析 解碼 所用的encoding,則使用預設的編碼org.apache.coyote.constants.default ch...