每当我尝试将一个字母转换std::string成一个QString字母(' ß '),QString就会变成像" Ã "或其他一些非常奇怪的字母.怎么了?我使用了这段代码并没有引起任何错误或警告!
std::string content = "Heißes Teil.";
ui->txtFind_lang->setText(QString::fromStdString(content));
Run Code Online (Sandbox Code Playgroud)
在std::string与这个角色没有问题.我甚至把它写成文本文件没有问题.那么我做错了什么?
您需要将编解码器设置为UTF-8:
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
Run Code Online (Sandbox Code Playgroud)
默认情况下,Qt使用Latin-1编码,该编码是有限的.通过添加此代码,您可以将默认编码设置为UTF-8,从而允许您使用更多字符.