QT+PCL 读取文件乱码问题

本文介绍了解决QT与PCL间文件名转换时出现的中文乱码问题的方法。通常情况下,QT使用QString类型表示文件名,而PCL则使用std::string类型。直接转换会导致中文乱码,进而影响文件读取。文章提供了正确的转换方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QT+PCL构建处理程序时,QT读取文件的文件名为QString类型,在PCL的读取pcd文件等函数上,文件名多为标准字符转类型std::string.如果之间转换,在QT中提供有转换函数toStdString().在文件名为中文时,转换结果在中文部分时出现乱码,导致文件读取失败。下面是解决办法

普通转换方法:

1 QString qstr;
2 string str;
3 str = qstr.toStdString();
4 qstr = QString::fromStdString(str);

对于适应中文乱码的转换方法:

1 std::string cstr;
2 QString qstring;
3 //从std::string 到QString
4 qstring = QString(QString::fromLocal8Bit(cstr.c_str()));
5 //从QString 到 std::string
6 cstr = string((const char *)qstring.toLocal8Bit());
7 //不需要从gbk转到utf8
8 QString value_content = QString::fromStdString(vec[i].content);
9 QString value_classname = QString::fromStdString(vec[i].classname);

 

转载于:https://www.cnblogs.com/lvyalei/p/7635342.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值