QT 中文字元亂碼

2021-08-01 12:56:30 字數 1479 閱讀 7637

qstring –> qbytearray 後位元組碼與window下的不對。下面的中文字元「中國人民億」,data是我正常後的gbk位元組,value是直接使用

qstring ::totoutf8(),qstring ::tolocal8bit()之類的與期望不符的位元組碼。

首先qstring 轉換成qbytearray 有三個成員函式

qbytearray qstring::tolatin1() const

qbytearray qstring::tolocal8bit() const

qbytearray qstring::toutf8() const

同樣的qbytearray轉換成qstring 也有對應的

qstring

::fromlatin1

qstring

::fromlocal8bit

qstring

::fromutf8

使用local8bit轉換時,看如下說明

qtextcodec::codecforlocale()is used to perform the conversion from unicode. if the locale encoding could not be determined, this function does the same as tolatin1().

,所以要想使用local8bit正常轉換中文的位元組,需要先設定好codecforlocale,可以使用下面的函式設定

[static] void qtextcodec::setcodecforlocale(qtextcodec *c)
示例如下,在main函式中設定中文編碼gb18030

int main(int argc, char *argv)

然後在使用到中文的地方用tr(「中文字元」),在使用tolocal8bit時轉換就ok了。

qstring str("直接使用");

qbytearray value = str.tolocal8bit();

方法二 ,直接使用qtextcodec 類

qstring str("直接使用");

qtextcodec *pcodec = qtextcodec::codecforname("gb18030");

qbytearray

data = pcodec->fromunicode(str);

MySQL不能插入中文字元及中文字元亂碼問題

mysql的預設編碼是latin1,不支援中文,要支援中午需要把資料庫的預設編碼修改為gbk或者utf8。在安裝後mysql之後,它的配置檔案不是很給力,不知道你們的是不是,反正我的是!開始插入中文字元的時候出現如下錯誤 error 1366 hy000 incorrect string value...

MySQL不能插入中文字元及中文字元亂碼問題

mysql的預設編碼是latin1,不支援中文,要支援中午需要把資料庫的預設編碼修改為gbk或者utf8。在安裝後mysql之後,它的配置檔案不是很給力,不知道你們的是不是,反正我的是!開始插入中文字元的時候出現如下錯誤 error 1366 hy000 incorrect string value...

python中文字元擷取亂碼

python學習中 python中關於中文字串擷取的問題 中文字元擷取亂碼 在python中乙個中文字元佔三個英文本元,看以下 print str 0 6 擷取啤酒兩個中文字元,需要從0開始截到6 print str 0 5 輸出 啤酒啤 就會出現亂碼 usr bin python coding u...