vc編程輸入字體變亂碼 QT3中怎么實現(xiàn)QString與char*的轉(zhuǎn)換?
QT3中怎么實現(xiàn)QString與char*的轉(zhuǎn)換?Qt下面,字符串都用QString,的確給開發(fā)者需要提供了比較方便,想一想VC里面定義的各種變量類型,但是函數(shù)參數(shù)類型層出,偶爾會需要今年新那個類型轉(zhuǎn)
QT3中怎么實現(xiàn)QString與char*的轉(zhuǎn)換?
Qt下面,字符串都用QString,的確給開發(fā)者需要提供了比較方便,想一想VC里面定義的各種變量類型,但是函數(shù)參數(shù)類型層出,偶爾會需要今年新那個類型轉(zhuǎn)換Qt再使用第三方開放源代碼庫時,的原因庫的類型基本都是標(biāo)準(zhǔn)的類型,字符串遇的多的那是Char*類型在Qt下怎么樣才能將QString轉(zhuǎn)char*呢,是需要應(yīng)用QByteArray類,QByteArray類的說明詳見Qt幫助文檔。
因為char*到最后都有吧一個‘/0'另外結(jié)束后符,而需要QString::toLatin1()時會在字符串后面而且‘/0'
方法::Qstringstrchar*chQByteArrayba()()這樣的話就成功了QString向char*的轉(zhuǎn)化。經(jīng)測試程序運行時絕對不會又出現(xiàn)bug再注意第三行,必須得另外,是可以().data()那樣一部能夠完成,肯定會出錯。補充:左右吧方法當(dāng)QString里不含中文時,沒有問題,但QString內(nèi)成分中文時,可以轉(zhuǎn)換為char*那就是出現(xiàn),區(qū)分追加方法解決的辦法:
方法1:去添加GBK編碼接受:
#includeltQTextCodecgtQTextCodec::setCodecForTr(QTextCodec::codecForName(#34GBK#34))
QTextCodec::setCodecForLocale(QTextCodec::codecForName(#34GBK#34))然后把變動上面的第三行為:QByteArrayba()toLoacl8Bit接受中文方法2:先將QString轉(zhuǎn)為標(biāo)準(zhǔn)庫中的string類型,然后將string轉(zhuǎn)為char*,萬分感謝:
std::stringstr()constchar*chstr.c_str()
在Visual c 6.0里為C程序代碼輸入中注釋為什么顯示是亂碼?
1.中文字符占兩個字符,操作過程很有可能只刪除掉了半個字符,可能導(dǎo)致了;
2.看下不是什么注釋的地方有沒有是中文字符的空格啥的;
3.遇上情況,就像我是文件復(fù)制下怎么辦行到記事本,然后把把行然后再寫下看看,再說鼓搗下就算就好了,偶爾會是多加個空行,或刪個空行啥的。