在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Halcon环境下可通过设置set_system(‘filename_encoding’, ‘utf8’),可以将二维码的识别结果解析出汉字。 VS环境下则需要将utf8转换成gbk格式。代码如下: int UTF8ToGBK(unsigned char * lpUTF8Str,unsigned char * lpGBKStr,int nGBKStrLen) { wchar_t * lpUnicodeStr = NULL; int nRetLen = 0;
if(!lpUTF8Str) //如果UTF8字符串为NULL则出错退出 return 0;
nRetLen = ::MultiByteToWideChar(CP_UTF8,0,(char *)lpUTF8Str,-1,NULL,NULL); //获取转换到Unicode编码后所需要的字符空间长度 lpUnicodeStr = new WCHAR[nRetLen + 1]; //为Unicode字符串空间 nRetLen = ::MultiByteToWideChar(CP_UTF8,0,(char *)lpUTF8Str,-1,lpUnicodeStr,nRetLen); //转换到Unicode编码 if(!nRetLen) //转换失败则出错退出 return 0;
nRetLen = ::WideCharToMultiByte(CP_ACP,0,lpUnicodeStr,-1,NULL,NULL,NULL,NULL); //获取转换到GBK编码后所需要的字符空间长度
if(!lpGBKStr) //输出缓冲区为空则返回转换后需要的空间大小 { if(lpUnicodeStr) delete []lpUnicodeStr; return nRetLen; }
if(nGBKStrLen < nRetLen) //如果输出缓冲区长度不够则退出 { if(lpUnicodeStr) delete []lpUnicodeStr; return 0; }
nRetLen = ::WideCharToMultiByte(CP_ACP,0,lpUnicodeStr,-1,(char *)lpGBKStr,nRetLen,NULL,NULL); //转换到GBK编码
if(lpUnicodeStr) delete []lpUnicodeStr;
return nRetLen; } |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论