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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

QT5对话框的中文字符串【乱码】 (error: C2001: 常量中有换行符)

發(fā)布時間:2025/3/21 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT5对话框的中文字符串【乱码】 (error: C2001: 常量中有换行符) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題解決:對話框的中文字符串【亂碼】 (error: C2001: 常量中有換行符)
假設(shè)編譯環(huán)境:QT5+vs2015

項目配置:

默認編碼:UTF-8

UTF-8 BOM:?目前存在了則保留

?

如果你在使用VS2008(需要打補丁)、VS2010、VS2013、VS2015(未安裝Update2),或者你的源碼需要兼容這些編譯器,當你在Qt5的C++源文件內(nèi)使用中文時,你需按以下步驟操作。(不止是中文,其實你完全可以在代碼中使用日韓法俄語等等各國語言)

1. 源文件保存為帶BOM的UTF-8格式(推薦轉(zhuǎn)換軟件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位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的QT5对话框的中文字符串【乱码】 (error: C2001: 常量中有换行符)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。