zoukankan      html  css  js  c++  java
  • halcon二维码中文乱码问题解决

    halcon扫描二维码若出现中文会有中文乱码问题,在halcon中给出方案是

    set_system ('filename_encoding', 'utf8')

    通过实验发现设置为utf8后,显示控件会出现报错无法new出来,

    自己通过分析后在c#中halcon将utf8码的中文直接按照gb2312给解码出来,当然就乱码了,逆向解码再用utf8转为中文就可以得到正确文字,以下是转码代码

            /// <summary>
            /// 判断字符串中是否包含中文
            /// </summary>
            /// <param name="str">需要判断的字符串</param>
            /// <returns>判断结果</returns>
            public static bool HasChinese(string str)
            {
                return Regex.IsMatch(str, @"[u4e00-u9fa5]");
            }
            /// <summary>
            /// utf8文字用gb2312格式显示时候乱码,需要转换为gb2312
            /// </summary>
            /// <param name="text"></param>
            /// <returns></returns>
            public static string Gb2312Correct(string text)
            {
                if (HasChinese(text)==false)
                {
                    return text;
                }
                //声明字符集   
                System.Text.Encoding utf8, gb2312;
                //utf8   
                utf8 = System.Text.Encoding.GetEncoding("utf-8");
                //gb2312   
                gb2312 = System.Text.Encoding.GetEncoding("gb2312");
                byte[] gb;
                gb = gb2312.GetBytes(text);
                gb = System.Text.Encoding.Convert(utf8, gb2312, gb);
                //返回转换后的字符   
                return gb2312.GetString(gb);
            }    
    专注机器视觉,halcon c# c++联合开发
  • 相关阅读:
    【转】数据库分页Java实现
    【转】ibatis的简介与初步搭建应用
    response.setContentType()的作用及参数
    【转】mysql数据库中实现内连接、左连接、右连接
    【转】JAVA的StringBuffer类
    【转】Java学习之Iterator(迭代器)的一般用法 (转)
    函数装饰器
    闭包函数
    函数(2)
    函数(1)
  • 原文地址:https://www.cnblogs.com/linyugang/p/9138989.html
Copyright © 2011-2022 走看看