關於中文字元編碼在linux下轉換。隨手筆記

2021-10-08 16:05:37 字數 859 閱讀 4680

字轉換: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 ...