QT5对话框的中文字符串【乱码】 (error: C2001: 常量中有换行符)
問題解決:對話框的中文字符串【亂碼】 (error: C2001: 常量中有換行符)
 假設編譯環(huán)境:QT5+vs2015
項目配置:
默認編碼:UTF-8
UTF-8 BOM:?目前存在了則保留
?
如果你在使用VS2008(需要打補丁)、VS2010、VS2013、VS2015(未安裝Update2),或者你的源碼需要兼容這些編譯器,當你在Qt5的C++源文件內使用中文時,你需按以下步驟操作。(不止是中文,其實你完全可以在代碼中使用日韓法俄語等等各國語言)
1. 源文件保存為帶BOM的UTF-8格式(推薦轉換軟件coolEdit)
 ? ?如果你要支持這些VS版本,且需要跨其他平臺,保存為帶BOM的UTF-8是必不可少的。
2. 而后,源碼中的所有字符串常量使用 QStringLiteral 宏進行包裹,如:
 ? ?QString s1 = QStringLiteral("中國");
? ?但是如果,除了寬字符串外,你還需要使用窄字符串,比如
 ? ?QString s2 = tr("中國");
 ? ?QByteArray s3 = "中國";
 ? ?const char * s4 = "中國";
 ? ?edit.setText("中國");
 ? ?
 ? ?那么,你需要:
 1. Qt5要求窄字符串執(zhí)行字符集為 UTF8
 ? ?在包含文件或CPP文件添加下面3行代碼?
?? ?#if _MSC_VER >= 1600
 ?? ?#pragma execution_character_set("utf-8")
 ?? ?#endif
2. [MSVC] 如果你不在用MSVC,請?zhí)^該步驟
如果你在使用MSVC2005或MSVC2012,請換用其他版本的MSVC
 如果你在使用MSVC2008,請升級到最新的SP1,并安裝 KB980263 補丁
 如果你在使用MSVC2010、MSVC2013或更新版本,本步驟不需要額外操作
具體細節(jié),請參考 http://blog.csdn.net/dbzhang800/article/details/7540905
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的QT5对话框的中文字符串【乱码】 (error: C2001: 常量中有换行符)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 后台服务显示右下角弹窗 -- syste
- 下一篇: 用正则表达式匹配网址URL中最后一个反斜
