Qt的字符集編碼以及轉換

2021-05-26 12:04:49 字數 843 閱讀 7443

qt 使用unicode編碼來儲存操作字串,但很多情況下,我們不得不處理採用其他編碼格式的資料,舉例來說,中文多採用gbk和big5編碼,而日本則多採用shift-jis or iso2022編碼。本文將討論如何將其他編碼格式的字串轉化成採用unicode編碼的qstring

// method 1

qstring

str=

qstring

::fro mlocal8bit(

"本地文字"

);

qstring

str2

=qstring

("本地文字"

); // 亂碼

// method 2

qtextcodec

*codec

=qtextcodec

::codecforname(

"gbk"

);//

getthe

codec

forkoi8-r

qstring

locallyencoded

=codec

->tounicode(

"顯示中文"

);

qdebug()

<<

locallyencoded

<<

endl;

//更多細節請參見:

字符集編碼的轉換

在程式設計的時候,往往需要字符集間編碼的轉換,這就需要用到乙個函式,它就是iconv函式。iconv不是php的預設函式,需要先安裝後才能用。如果是在windows環境下,可以修改php.ini檔案,將extension php iconv.dll前的 去掉。關於如何使用,這裡可以舉個例子。如下 i...

Unicode以及字符集轉換

曾經碰到乙個問題,專案需要支援日文作業系統,但是沒有編譯成unicode程式。然後在乙個解析使用者輸入路徑的地方出問題了。原因是日文的 表 這個漢字,日文編碼格式下,低位元組和反斜槓 編碼一樣,解析的時候把它當成路徑的分隔符了。項 8d 80 shift jis 目 96 da shift jis ...

Unicode以及字符集轉換

曾經碰到乙個問題,專案需要支援日文作業系統,但是沒有編譯成unicode程式。然後在乙個解析使用者輸入路徑的地方出問題了。原因是日文的 表 這個漢字,日文編碼格式下,低位元組和反斜槓 編碼一樣,解析的時候把它當成路徑的分隔符了。項 8d 80 shift jis 目 96 da shift jis ...