我正在使用qstring并使用函数toStdString()。当我这样做时,我会丢一个减号:
'332-_09I_W'
此文字成为:
'332_09I_W'
我该怎么做才能防止这种情况发生?
编辑:实际上,当我使用toStdString()时,问题不在于,当我在qTextEdit中设置文本时。这种变化发生在这里:
myTextEdit->setHtml(myString);
答案 0 :(得分:0)
我试过了:
QString qs("332-_091_W");
std::string st = qs.toStdString();
ui->textEdit->setHtml(st.c_str());
这对我没有任何问题。您使用的是哪个版本的Qt?
但是,从文档:
setHtml()更改文本编辑的文本。删除任何以前的文本 并清除撤消/重做历史记录。输入文字是 解释为html格式的富文本。 注意:调用者有责任确保在创建包含HTML的QString时正确解码文本 并传递给setHtml()。
在HTML中使用减号/连字符符号不明确,尝试使用setHtml()
−
之前)