设置首页收藏本站
开启左侧

[C++] Qt使用Halcon加载中文文件名报错的解决方案

[复制链接]
绝地武士 发表于 前天 16:15 | 显示全部楼层 |阅读模式
Halcon库内部默认采用了UTF-8编码来表示字符串,而中文系统的locale一般都是GB2312(zh_CN.GB2312)或者GBK(zh_CN.GBK
那么解决乱码就需要针对本地编码转换到UTF-8或者修改Halcon库的默认编码为locale编码,都是可以的,优先选UTF-8。

这里我们用QT字符串QString代表路径,读取dxf实现代码演示:
一、UTF8默认编码(推荐):
  1. QString strDxf = "D:\\匹配轮廓.dxf";
  2. HTuple hv_DxfStatus;
  3. HObject ho_DxfContours;
  4. ReadContourXldDxf(&ho_DxfContours, strDxf.toUtf8().data(), HTuple(), HTuple(), &hv_DxfStatus);
复制代码
这里是不能禁用Halcon默认的UTF8编码哦!

二、禁用Halcon的UTF8编码再转换到本地8位编码后传入:
  1. if(IsHcppInterfaceStringEncodingUtf8())
  2.     SetHcppInterfaceStringEncodingIsUtf8(false);
复制代码
  1. QString strDxf = "D:\\匹配轮廓.dxf";
  2. HTuple hv_DxfStatus;
  3. HObject ho_DxfContours;
  4. ReadContourXldDxf(&ho_DxfContours, strDxf.toLocal8Bit().toStdString().data(), HTuple(), HTuple(), &hv_DxfStatus);
复制代码


奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表