我在嵌入式上移植了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...