字轉換:wctomb、mbtowc,baiwc 指 wide charactor,mb 指 multi-byte。
字串轉換:wcstombs、mbstowcs,wcs 和du mbs 的 s 指 string。
這 4 個函式zhi是 c 標準函式庫函式中的。
如果只是dao在 windows 平台下程式設計,
可直接呼叫 windows api 函式 widechartomultibyte 和 multibytetowidechar 實現。
但是如果呼叫標準庫函式的話,在 linux 下也是有效的。
呼叫標準庫函式,
首先必須包含
locale.h
並呼叫 setlocale(lc_all, "") 後才能正確轉換。
windows 下的 multi-byte 是 ansi 編碼的,wide charactor 是 unicode (utf-16) 編碼
而 linux 下的 multi-byte 是 utf-8 編碼的,wide charactor 是 unicode (utf-32) 編碼。
以下**在linux執行。windows請使用widechartomultibyte 和 multibytetowidechar 使用即可
#include #include #include int main();
setlocale(lc_all,"");
wcstombs(str,wstr,sizeof(str)/ sizeof(char));
printf("str=%s",str);
return 0;
}
Java 中文字元編碼
public class test for int i 0 i string類的不帶引數的getbytes 方法會以程式所執行平台的預設編碼方式為準來進行轉換,在不同環境下可能會有不同的結果,因此建議使用指定編碼方式的getbytes string charsetname 方法。public sta...
Qt中關於中文字元編碼問題
qstring filepath filepath qfiledialog getopenfilename null,qstring 開啟戶型圖 qstring qstring 戶型 件 bmp jpg png 編譯器報如下錯誤 e qt projects huxing src mainwindow...
Ubuntu下增加中文字元編碼的方法
一.ubuntu預設的中文字元編碼 ubuntu預設的中文字元編碼為zh cn.utf 8,這個可以在 etc environment中看到 sudo gedit etc environment 可以看到如下內容 path usr local sbin usr local bin usr sbin ...