近期開始接觸Qt,並開始着手用Qt開發。簡單記錄下開發中碰到的中文編碼的問題。
當中文在代碼編輯器中不能正常顯示的時候,可以選擇更改源文件爲GBK並按此格式保存。
1. 代碼中使用中文常量
:QStringLiteral("中文"): QStringLiteral 是一個宏,參數爲const char*,返回的是一個QString類型
不是用QStringliteral的時候編譯會無法通過,這樣界面和代碼中都可以正常使用中文了。
2. 代碼中使用中文的字符串變量
:需要用到一個QString的中文字符串數組, 嘗試過用 QString str[] = {QStirngLiteral("中文"), QStringLiteral("英文")};,編譯會通不過並且不給出具體提示。
通過查詢文檔才發現 MSVC2010 MSVC2012 編譯的時候無法使用這種方式來初始化一個QString的數組。 更高版本的MSVC以及GCC還未進行測試。。。
:如需使用帶中文的QString數組,可以使用QString提供的靜態方法 --- QString str[] = {QString::fromStdWString(L"中文", QString::fromStdWString(L"英文")};
這樣一來,如果僅僅是在windows上使用的話,也可以採取使用QString::fromStdWString(L"") 這個方法來正常使用中文了。