gpt4 book ai didi

c++ - 为什么QStringLiteral返回乱码字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:32 25 4
gpt4 key购买 nike

我正在编写一个中文软件,并在源文件中嵌入了一些字符串。为了减少运行时开销(好吧,实际上这是过早的优化,因为速度差异可以忽略不计,但尽管如此,我很好奇),当我使用 QStringLiteral 和中文字符时,例如

QString s = QStringLiteral("中文");

字符串显示为乱码;但如果我只是使用

QString s = "中文";

它工作正常。但是后者在运行时而不是编译时构造字符串,所以速度稍慢。谁能告诉我如何解决这个问题?

我的源文件编码是没有BOM的UTF8;编译器是带有 SP1 的 MSVC 2010 Express。我也试过了

#pragma execution_character_set("utf-8")

没用。

最佳答案

好的,我自己解决了。我需要用字节顺序标记保存文件,然后 MSVC 正确识别它是用 UTF-8 编码的,一切正常。


更新:在较新的 MSVC 上,我们可以设置编译器选项 /utf-8 而不必理会 BOM。

关于c++ - 为什么QStringLiteral返回乱码字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com