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++联合开发
  • 相关阅读:
    vue语法
    第3章 语言基础(上)
    第2章 HTML中的JavaScript
    第1章 什么是JavaScript
    附录 A ES6附加特性
    第14章 跨浏览器开发技巧
    第13章 历久弥新的事件
    第12章 DOM操作
    第11章 代码模块化
    第10章 正则表达式
  • 原文地址:https://www.cnblogs.com/linyugang/p/9138989.html
Copyright © 2011-2022 走看看