如何将 unicode QString 转换为 std::string?
我需要将 QString
转换为 std::string
。但是,如果该字符串包含 unicode 符号,我会得到 ????
。如何使用正确的编码转换字符串?
谢谢。
I need convert a QString
to an std::string
. However, if this string contains unicode symbols, I get ????
. How can I convert the string with the proper encoding?
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
到目前为止您是如何尝试转换字符串的?
根据 文档
std::string QString::toStdString ( )
应该将 unicode-data 转换为 ascii-string但请注意,您会丢失 ascii 无法处理的特殊字符。
How did you try to convert the string so far?
According to documentation
std::string QString::toStdString ()
should convert the unicode-data to an ascii-stringBut be warned that you loose special-chars which ascii can't handle.
根据Qt文档,QString::toStdString内部使用toAscii()函数: http:// /doc.qt.nokia.com/latest/qstring.html#toStdString
基本上,您需要创建自己的转换器函数来使用 QString::toUtf8() 代替。
According to Qt documentation, QString::toStdString internally uses toAscii() function: http://doc.qt.nokia.com/latest/qstring.html#toStdString
Basically, you'll need to make your own converter function that would use QString::toUtf8() instead.