Qt unicode 和变音符号

发布于 2024-11-17 11:44:15 字数 301 浏览 2 评论 0原文

由于我们已将所有源文件和头文件转换为 unicode,因此我们面临着德语元音变音的问题。源代码中的一切都很好,但 QLabels 和其他 gui 组件显示变音符号乱码。

ISO-8859-1 源工作正常,但在 OSX 和 Windows 之间切换时会出现问题。

我需要在项目文件中设置什么吗?

环境:Qt 4.7 和 Qt Creator 2.3.0,在 Windows XP SP3 上使用 MinGW

Example

Since we've converted all our source and header files to unicode, we're facing problems with german umlauts. Everything is fine in the source but QLabels and other gui components are showing umlauts garbled.

ISO-8859-1 source works fine but causes problems when switching between OSX and Windows.

Is there anything I have to set in the project file?

Environment: Qt 4.7 with Qt Creator 2.3.0 using MinGW on Windows XP SP3

Example

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

揪着可爱 2024-11-24 11:44:16

尝试

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

在创建 QApplication 对象后立即调用。仅当您使用 tr() 时才需要 QTextCodec::setCodecForTr

编辑:这仅适用于版本 5 之前的 Qt。较新的 Qt 版本期望源文件转换为 UTF-8。

Try to call

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

just after creating the QApplication object. QTextCodec::setCodecForTr is only needed if your using tr().

EDIT: This works only for Qt older than version 5. Newer Qt versions expect the source files to be converted to UTF-8.

遮云壑 2024-11-24 11:44:16

我遇到了类似的问题,决定在源文件中仅使用 7 位 ASCII 字符,并安装一个创建变音符号的 QTranslator。

由于应用程序无论如何都需要翻译成其他语言,这似乎是避免编码问题的好方法。

I had a similar problem and decided to use only 7bit-ASCII characters in my source files and install a QTranslator that creates the umlauts.

As the application needs to be translated to other languages anyway, this seems like a good way to avoid encoding troubles.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文