比如
现在做qt多语言中译英,
int aa=10;
qstring str =qstring:fromlocal8bite("你选中的是%1").arg(aa);
runjavascript(str);
把qstring:fromlocal8bite()改为tr(),中英文都显示为乱码
请教如何解决
在Qt中,如果你在JavaScript中使用中文并且出现乱码,可能是因为字符编码的问题。在Qt中,字符串默认使用UTF-8编码,而JavaScript也使用UTF-8编码。因此,你需要确保你的字符串是以正确的编码格式传递的。
在你的例子中,你可以尝试以下方法:
QString str = QString("你选中的是%1").arg(aa);
runJavaScript(str.toUtf8());
这样可以确保你的字符串以UTF-8格式传递给JavaScript。
另外,关于多语言的问题,Qt提供了一个叫做Qt Linguist的工具,可以帮助你实现多语言支持。你可以使用tr()
函数来标记需要翻译的字符串,然后使用Qt Linguist来生成翻译文件。在运行时,Qt会根据系统的语言设置来选择合适的翻译。
如果你在使用这些方法后仍然遇到问题,我建议你查阅Qt的官方文档或者在Qt的社区论坛中寻求帮助,那里有很多经验丰富的开发者可以提供帮助。
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QString str = codec->toUnicode("你选中的是%1").arg(aa);
runJavaScript(str);
明确UTF8编码