UTF 8與GBK字元之間的轉換

2021-10-06 11:57:57 字數 1406 閱讀 3104

1.utf-8轉換為unicode編碼

utf-8編碼不能直接轉換為gbk漢字編碼,中間需要先轉換為unicode編碼,在由unicode編碼轉換為gbk漢字編碼

2.unicode編碼轉換為gbk漢字編碼

unicode漢字編碼與gbk漢字編碼的對照關係為,兩個unicode編碼對應乙個漢字,並且在unicode編碼中,漢字編碼的起始位置是0x4e00,也就是說將utf-8漢字編碼轉換為unicode編碼時需要偏移0x4e00去讀取資料。

1.從flash讀取unicode編碼

unsigned short  mb_uni2gb_table=;

uint16_t read_flash_unicode(uint16_t* unicode,uint32_t readaddr,uint16_t num_len)

2.utf-8轉換為unicode編碼

int switchtogbk(const unsigned char* pszbufin, int nbufinlen, unsigned char* pszbufout, int* pnbufoutlen)

else if((pszbufin[i] & 0xe0) == 0xc0)// 2位

else if ((pszbufin[i] & 0xf0) == 0xe0) // 3位

else

}*pnbufoutlen = j;

return 0;

}

3.unicode編碼轉換為gbk漢字編碼

void get_hzmat(unsigned char *code,unsigned char *mat)

if(y>(y0+height-size))break;//越界返回

if(*str==13)//換行符號

else

lcd_showchar(x,y,*str,fc);//有效部分寫入

str++;

x+=size/2; //字元,為全字的一半 }}

else//中文

if(y>(y0+height-size))break;//越界返回

show_font(x,y,str,fc); //顯示這個漢字,空心顯示

str+=2;

x+=size;//下乙個漢字偏移

}

} gpio_pin_set(u32bit(lcd_cs));

}

GBK和UTF8之間的轉換

gbk和utf8之間的轉換 my study by cnangel on october 8,2012 10 10 am no comments 關於gbk和utf 8之間的轉換,很多初學者會很迷茫。一般來說gbk和utf 8是文字的編碼方式,其對應的內碼是不一樣的,所以gbk和utf 8的轉換需要...

gbk 轉換 utf 8問題

問題一 檔案已經另存為了utf 8碼,但關閉後重新開啟就自動變成了ansi編碼 答 原因是該檔案中沒有包含任何中文字元,如果該檔案有包含中文字元,將檔案另存為utf 8編碼後,中文字元會以3個位元組的寬度來儲存 要看16進製制 這樣,在第二次開啟檔案時,編輯器會自動將檔案識別為utf 8編碼。請仔細...

GBK與UTF 8的區別

gbk的文字編碼是雙位元組來表示的,即不論中 英文本元均使用雙位元組來表示,只不過為區分中文,將其最高位都定成1。至於utf 8編碼則是用以解決國際上字元的一種多位元組編碼,它對英文使用8位 即乙個位元組 中文使用24位 三個位元組 來編碼。對於英文本元較多的論壇則用utf 8節省空間。gbk包含全...