我正在使用 qstring 并使用函数 toStdString()。当我这样做时,我失去了一个减号:
'332-_09I_W'
这段文字变成:
'332_09I_W'
我能做些什么来防止这种情况发生?
编辑:实际上,问题不在于我使用 toStdString() 时,而在于我在 qTextEdit 中设置文本时。变化发生在这里:
myTextEdit->setHtml(myString);
我试过了:
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()
)−