日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

QT乱码总结4.细谈本地编码

發布時間:2024/4/11 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT乱码总结4.细谈本地编码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

QT亂碼總結0.Qt亂碼產生因素
https://blog.csdn.net/liujiayu2/article/details/103167953

QT亂碼總結1.Unicode 和 UTF-8
https://blog.csdn.net/liujiayu2/article/details/103168020

QT亂碼總結2.gbk和ANSI和gb2312的區別
https://blog.csdn.net/liujiayu2/article/details/103168168

QT亂碼總結3.UNICODE有無BOM
https://blog.csdn.net/liujiayu2/article/details/103168236

QT亂碼總結4.細談本地編碼
https://blog.csdn.net/liujiayu2/article/details/103168249

QT亂碼總結5.萬能解決方案
https://blog.csdn.net/liujiayu2/article/details/103168272

QT亂碼總結6.編碼測試和總結一
https://blog.csdn.net/liujiayu2/article/details/103168289

QT亂碼總結7.編碼測試和總結二
https://blog.csdn.net/liujiayu2/article/details/103168301

QT亂碼總結8.編碼測試和總結三
https://blog.csdn.net/liujiayu2/article/details/103168307

QT亂碼總結9.編碼測試和總結四
https://blog.csdn.net/liujiayu2/article/details/103168317

QT亂碼總結編碼測試工程:
https://download.csdn.net/download/liujiayu2/11987065

?

什么是本地編碼?

每一個操作系統都有本地編碼,這個依照操作系統不同而不同,比如我們常見的window簡體中文版操作系統,本地編碼默認是gbk編碼。舉例說明一下本地編碼:我們在桌面新建一個文本文件“測試文本.txt”,寫入內容“123我愛你”,如圖:

然后切換本地編碼為美國英語。重寫打開一下,看看里面內容:

我們看到同樣一個文本,切換本地編碼就表現大不相同。有的問會問了,好像中文路徑名字都是一樣的,這是因為windows內部統一采用UTF-16編碼(網上看到的,確定性待分析

?

如何查看本地編碼?

方式1:cmd命令下輸入chcp,如下圖:

936就代表中文簡體(GBK編碼)。

方式2:

打開 控制面板->區域和語言->管理->更改系統區域設置,看到如下圖:

現在采用的就是中文簡體編碼。

?

如何更改本地編碼?

方法1,在上述描述中的控制面版里面改,改之后重啟操作系統,整個操作系統默認編碼都改變了。我們之前介紹什么是本地編碼中更改本地編碼采用的就是這種手段。

方法2,QTextCodec::setCodeForLocal(),這個只能對當前應用有效,并非全局設置。

?

Qt中本地編碼有什么用,哪些動作和本地編碼相關?

qt中有兩個常用的函數和本地編碼息息相關,QTextCodec::setCodecForLocal()設置本地編碼。QString::fromLocal8Bit()從本地編碼初始化一個字符串。比如說:文件采用ANSI編碼,里面有個漢字字符,采用QString::fromLocal8Bit()包括,對QTextCodec::setCodecForLocal()不r進行設置,或者這是成本地編碼,或本地編碼的的方式:

QTextCodec::codeForLocal或者QTextCodec::codeForName("system")如果是window簡體中文版操作系統也可以寫成QTextCodec::codeForName("gb2312")。

舉一個反面教材:

文本文件(ANSI)

+ ?QString::fromLocal8Bit()

+? QTextCodec::setCodecForLocal(QTextCodec::codeForName("utf-8"))

+ ?簡體中文版操作系統?

= 亂碼。

原因:本來清一色的 ANSI,卻來了個UTF-8。紅色標注的選項多次一舉,不設置就會正常顯示。

?

?

?

總結

以上是生活随笔為你收集整理的QT乱码总结4.细谈本地编码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。