2010-10-07 70 views
4

如何在C++中用一系列UTF-8字符初始化const char *和/或const std :: string?如何使用一系列UTF-8字符在C++中初始化const char *和/或const std :: string?

我正在使用接受UTF8字符串作爲常量字符*的正則表達式API。初始化代碼應該與平臺無關。

+0

可用選項取決於您使用的編譯器。 – 2010-10-07 11:46:14

+4

輕鬆。 'const char * c =「ěščř」;'。只需以UTF-8編碼保存文件即可。 – nothrow 2010-10-07 11:48:52

+0

這些選項還取決於UTF-8字符串在源代碼中的可讀性。 – 2010-10-07 11:49:02

回答

7

這應該與任何編譯器工作:

const char* twochars = "\xe6\x97\xa5\xd1\x88"; 
2

編譯器 - 獨立的回答也是: 保存在UTF-8 文件而不BOM簽名編碼。

const char* c = "ěščř"; //Just save the file in UTF-8 without BOM signature. 

(見問題的評論。)
順便說一句,Windows控制檯蜜蜂必須設置爲UTF-8。有關許多細節,請參閱post轉換爲question

+0

這應該是現在推薦的做法。清楚地說明你的所有源代碼都是UTF-8,沒有BOM,沒有例外,所有文件都使用UTF-8,然後按照C/C++標準方式支持初始化常量字符串。 – cesss 2018-01-05 13:49:11

相關問題