【发布时间】:2013-12-18 07:13:19
【问题描述】:
在 QML 中,我有一个 TextArea。当我将此 TextArea 的文本属性设置为“ÆØÅ”时,它会在程序运行时显示“ÆØÅ”。
我还通过一些我想在同一个 TextArea 中显示的函数获取文本,但是“ÆØÅ”显示为“???”。
字符串来自这个 C++ 函数:
QString Tts::morseToChar(QString morse)
{
if(morse == ".-") return "A";
else if (morse == "-...") return "B";
...
...
else if (morse == ".-.-") return "Æ";
else if (morse == "---.") return "Ø";
else if (morse == ".--.-") return "Å";
}
返回字符串被添加到 QML 字符串中:
property string ttsChar: ""
ttsChar += ttsSpeak.morseToChar(morse)
_ttsTextArea.text += ttsChar
所有文件都保存为 UTF-8。
我缺少什么转换才能使其正常工作?
【问题讨论】:
-
在代码中直接使用非 ASCII 字符和字符串文字是个坏主意。它不可移植且不可扩展。首选在运行时从文本文件加载。
-
这个应用程序仅供一个人在一台机器上使用,所以如果没有必要(即使是一个好主意/提示),我想保持简单。
-
看,它甚至不能扩展到一台机器上的一个人。
-
我明白你的意思。我会试试你的方法=)