0

我正在使用 qstring 并使用函数 toStdString()。当我这样做时,我失去了一个减号:

'332-_09I_W'

这段文字变成:

'332_09I_W'

我能做些什么来防止这种情况发生?

编辑:实际上,问题不在于我使用 toStdString() 时,而在于我在 qTextEdit 中设置文本时。变化发生在这里:

myTextEdit->setHtml(myString);
4

1 回答 1

0

我试过了:

QString qs("332-_091_W");
std::string st = qs.toStdString();
ui->textEdit->setHtml(st.c_str());

这对我没有任何问题。您使用的是哪个版本的 Qt?

但是,从文档中:

setHtml() 更改文本编辑的文本。任何以前的文本都被删除,撤消/重做历史被清除。输入文本被解释为 html 格式的富文本。注意:调用者有责任确保在创建包含 HTML 的 QString 并将其传递给 setHtml() 时正确解码文本。

减号/连字符在 HTML 中不明确,请尝试在 QString 中更改它(在将其传递给之前setHtml()−

于 2013-07-03T16:14:52.827 回答