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...