Qt學習筆記(五)QString 字串
1、字符集
字元 Character:文字元號。
字符集 Charset:字元的集合,規定一系列字元與數字的關係(編碼)。
字符集都是由一些組織制定和釋出的,例如ISO/IEC就負責制定字符集。
每個字符集都有一個標準編號,例如,ASCII字符集的編號為ISO/IEC 646(即,由ISO/IEC釋出第646號標準文件)。
2、拉丁字符集
拉丁字符集,收錄了歐洲各個國家的字元,例如,希臘字母Aα Bβ。
拉丁字符集的編號為ISO 8859系列,例如,ISO8859-1字符集,也就是Latin-1,是西歐常用字元,包括德法兩國的字母。ISO8859-2字符集,也就是Latin-2,收集了東歐字元。
注意:拉丁字元的總數遠遠超過了256個,無法用一個char型表示,得用2個位元組表示。所以,即使不使用中文,外文字元的表示也是有問題的。
char a = ‘α’;// 這就有問題了
問題的原因是相同的,無法用一個位元組來表示一個字元。
ASCII碼:0-127之間,最高位0,拉丁字元:最高位1。以此來區分。
3、中文字符集
GB2312,中文簡體國標碼(6763個漢字);
GBK,擴充套件中文GB編碼(相容GB2312);(工具UltraEdit)
GB18030,用1-4個位元組編碼,容量超大;
BIG5,中文繁體編碼;
CJK,中日韓大字符集編碼;
Unicode,統一碼,用0-0x10FFFF來對映全球各國的語言文字。
Unicode編碼方案:
①UTF-32編碼:每個字元用一個int來表示;
②用1-2個short來表示一個字元;
③UTF-8編碼:用1-4個位元組來表示一個字元(比較節省空間)
注意:windows中.cpp檔案中的漢字都是以GBK格式編碼的,其他平臺可能會不一樣。所以,如果想以Unicode格式輸出,需通過某些方法來轉換。
4、QString相關轉換
Qt是一個跨平臺的框架,它封裝了一個QString類來代表字串,是一個Unicode16編碼的類。
void MyWin3::TestBtnClicked() {
QString str = "哈哈";
ui.lineEdit->setText(str);
}
void MyWin3::TestBtnClicked() {
QString str = QString::fromLocal8Bit("哈哈");
ui.lineEdit->setText(str);
}
5、程式釋出注意事項
當程式中帶有中文轉換處理時,需要將Qt使用的文字編碼庫一同釋出。
Windows下Qt應用程式:
①找到Qt的編碼庫:C:\x.x.x\plugins\codercs
②拷貝codecs資料夾到工程exe檔案所在目錄下。
③把vs的執行時庫也要拷貝到cedecs目錄下。(mvcm/mvcp/mvcr)
相關文章
- QT字串QStringQT字串
- C++ Qt開發:字串QString容器C++QT字串
- 字串學習筆記字串筆記
- 字串家族 學習筆記字串筆記
- 【學習筆記】字串匹配筆記字串匹配
- QT學習筆記4(動畫)QT筆記動畫
- JVM 學習筆記(五)JVM筆記
- cmake學習筆記(五)筆記
- KMP字串匹配學習筆記KMP字串匹配筆記
- 【Python學習】學習筆記 14-15 字串Python筆記字串
- DP學習筆記(五)(2024.11.16)筆記
- c++學習筆記(五)C++筆記
- Kubernetes學習筆記(五):卷筆記
- 字典--Python學習筆記(五)Python筆記
- C/C++學習筆記:字串C++筆記字串
- Python學習筆記 - 字串,數字Python筆記字串
- Qt4.8.5 + VS2010 學習筆記QT筆記
- Jenkinsant介紹(學習筆記五)Jenkins筆記
- 【Qt 專欄】QString::arg()函式QT函式
- Python 學習筆記(6)— 字串格式化Python筆記字串格式化
- hive學習筆記之五:分桶Hive筆記
- Netty學習筆記(五)NioEventLoop啟動Netty筆記OOP
- TypeScript學習筆記之五類(Class)TypeScript筆記
- springcloud學習筆記(五)Spring Cloud ActuatorSpringGCCloud筆記
- Qt Creator 原始碼學習筆記01,初識QTCQT原始碼筆記
- Python學習筆記:第3天 字串的操作Python筆記字串
- Python3學習筆記-字串和編碼Python筆記字串
- ES6學習筆記(一)【變數,字串】筆記變數字串
- 計網學習筆記五 wireless && mobile networks筆記
- Perl學習筆記(五)——關聯陣列筆記陣列
- Java IO學習筆記五:BIO到NIOJava筆記
- HexMap學習筆記(五)——更大的地圖筆記地圖
- Spring 學習筆記(五)執行時注入Spring筆記
- Solidity語言學習筆記————18、字串和函式Solid筆記字串函式
- 飛機的 PHP 學習筆記五:陣列PHP筆記陣列
- JVM學習筆記五--虛擬機器棧JVM筆記虛擬機
- 第五天學習Java的筆記Java筆記
- Qt Creator 原始碼學習筆記02,認識框架結構QT原始碼筆記框架