Qt5 C++原始碼中使用中文的簡單步驟
阿新 • • 發佈:2019-01-25
本文不講任何道理,當你在Qt5的C++源檔案內使用中文時,你只需按順序簡單照做即可。(不止是中文,其實你完全可以在程式碼中使用日韓法俄語等等各國語言)
0. [通用] 原始檔儲存為帶BOM的UTF-8格式
如果你準備跨平臺,儲存為帶BOM的UTF-8是必不可少的。而後,原始碼中的所有字串常量使用 QStringLiteral 巨集進行包裹
複製程式碼
僅僅這樣就可以了。
但是
如果,除了寬字串外,你還需要使用窄字串,比如
複製程式碼
那麼,你需要:
1. [通用] Qt5要求窄字串執行字符集為 UTF8
在檔案頭部新增下面3行程式碼
複製程式碼
2. [MSVC] 如果你不在用MSVC,請跳過該步驟
如果你在使用MSVC2005或MSVC2012,請換用其他版本的MSVC
如果你在使用MSVC2008,請升級到最新的SP1,並安裝 KB980263 補丁
,本步驟不需要額外操作
0. [通用] 原始檔儲存為帶BOM的UTF-8格式
如果你準備跨平臺,儲存為帶BOM的UTF-8是必不可少的。而後,原始碼中的所有字串常量使用 QStringLiteral 巨集進行包裹
複製程式碼
- QString s1 = QStringLiteral("中國");
- edit.setText(QStringLiteral("中國"));
僅僅這樣就可以了。
但是
如果,除了寬字串外,你還需要使用窄字串,比如
複製程式碼
- QString s1 = "中國";
- QString s2 = tr("中國");
- QByteArray s3 = "中國";
- const char * s4 = "中國";
- edit.setText("中國");
那麼,你需要:
1. [通用] Qt5要求窄字串執行字符集為 UTF8
在檔案頭部新增下面3行程式碼
複製程式碼
- #ifdef _MSC_VER
- #pragma execution_character_set("utf-8")
- #endif
2. [MSVC] 如果你不在用MSVC,請跳過該步驟
如果你在使用MSVC2005或MSVC2012,請換用其他版本的MSVC
如果你在使用MSVC2008,請升級到最新的SP1,並安裝 KB980263 補丁
如果你在使用MSVC2010或MSVC2013