无法理解u8文字的语义,或者更确切地说,理解g ++ 4.8.1的结果
这是我的期望:
const std::string utf8 = u8"åäö"; // or some other extended ASCII characters
assert( utf8.size() > 3);
Run Code Online (Sandbox Code Playgroud)
这是g ++ 4.8.1的结果
const std::string utf8 = u8"åäö"; // or some other extended ASCII characters
assert( utf8.size() == 3);
Run Code Online (Sandbox Code Playgroud)
在我的世界中,无论源文件的编码如何,生成的utf8字符串都应该长于3.
或者,我是否完全误解了u8的语义,以及它所针对的用例?请赐教.
更新
如果我明确地告诉编译器源文件的编码是什么,正如许多建议的那样,我得到了u8文字的预期行为.但是,常规文字也会被编码为utf8
那是:
const std::string utf8 = u8"åäö"; // or some other extended ASCII characters
assert( utf8.size() > 3);
assert( utf8 == "åäö");
Run Code Online (Sandbox Code Playgroud)