這裡列一下,在不同檔案系統上,字元編碼會有什麼不同。
這裡以中文字:嚴,和西歐洲文字:ç 為例,作為usb上檔名來說明:
mount引數
嚴(unicode為 4e 25)
ç (unicode為 00 e7)
ntfs/vfat
-o iocharset=utf8
e4 b8 a5 (三位元組 utf8 編碼)
c3 a7(兩位元組 utf8編碼)
ext3
n/ae4 b8 a5 (三位元組 utf8 編碼)
e7(windows-1252編碼)
從上面的**可以看出:
1、ntfs/vfat 使用 iocharset=utf8 是,讀到的內容,都是用 utf8 表示的。
2、ext3中,mount中無 charset 引數。
這樣會出現 ext3 中,中文是使用的 utf8 表示的,而西歐文字,卻是windows-1252編碼的。
這樣要正確顯示 ext3 上的西歐文字,就需要將其用 windows-1251 轉碼後,才能正確顯示。
介紹utf8編碼
utf8並不算是一種電腦編碼,而是一種儲存和傳送的格式,如前所述,每個unicode ucs字元都以 2或4個bytes來儲存,看看以下的比較 以 i am chinese 為例 用ansi儲存 12 bytes 用unicode ucs2儲存 24 bytes 2 bytes header 用uc...
UTF8編碼 解碼
參考文件 rfc3629標準.對於任意乙個字,都可以用乙個唯一碼 unicode碼,由標準編制 表示,在應用過程中,需要對碼進行編碼.常用的編碼方式為utf 8.utf 8採用類似於ip位址分配的機制.即對於不同範圍的unicode碼,採用不同的模板進行編碼.流程概述為 2.1 查表獲取unicod...
ANSI與UTF 8編碼轉換
將ansi編碼裝換為utf 8在windows mfc環境下測試下面的 static int ansi2utf8 in const char csrc,out char cdest 以下 將utf 8 轉換為gb2312 intutf8togb2312 const char sourcebuf,si...