我遇到乙個需要處理中文字元的問題。剛開始想用wchar_t儲存,比如」你好.世界」,編碼成:
wchar_t *var = "你好.世界";
實際占用10個位元組
c4 e3 ba c3 2
e00 ca c0 bd e7 00
而如果這樣編碼:
char *var = "你好.世界";
實際占用9個位元組
c4 e3 ba c3 2
e00 ca c0 bd e7 00
造成這種差別的,就是變數型別的不同,而變數型別,是由編譯器識別和處理的,與檔案的編碼方式(gbk,utf-8)無關。我的設想是編譯器將檔案讀到記憶體,所有字元統一轉換成unicode編碼,這樣就不存在差異了,然後根據型別再封裝成二進位製流,也沒有了差別。
但實際上,我切換了文字的編碼為utf-8,結果出人意料,實際儲存占用13個位元組:
e4 bd a0 e5 a5 bd 2
e e4 b8 96 e7 958c
00
所以,實際儲存的位元組流既跟檔案編碼有關,也跟變數的型別有關。 java IO流 位元組流讀寫中文
位元組流讀取中文的問題 位元組流在讀中文的時候有可能會讀到半個中文,造成亂碼 fileinputstream fis new fileinputstream yyy.txt byte arr new byte 4 int len while len fis.read arr 1 位元組流寫出中文的問...
按位元組數擷取包含中文字串
字串擷取 有這麼一串字串,我abc愛ce你ef 要求你寫一段程式,當輸入4的時候得到的子串是 我ab 當輸入6的時候得到的子串為 我abc愛 不能出現 愛 字為半邊。擷取字串,最後如果是半個中文,補上剩下的半個 功能詳細描述 param str 原始的字串 param size 需要擷取的長度 re...
python unicode位元組串轉成中文問題
example 2 str russopho xe9bic,clichd and just pl xe9ain stupid.print str russopho?bic,clichd and just pl?ain stupid.str str decode unicode escape prin...