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++联合开发
  • 相关阅读:
    Delphi制作带图标的弹出式选单 DELPHI
    在DBGrid中实现Copy、Paste功能 DELPHI
    使用stringgrid的例子 DELPHI
    取得某一dll所有输出函数名 DELPHI
    HDOJ 2512 一卡通大冒险
    POJ 2533 Longest Ordered Subsequence
    UVA 10795 A Different Task
    HDOJ 1505 City Game
    HDOJ 1864 最大报销额
    HDOJ 1421 搬寝室
  • 原文地址:https://www.cnblogs.com/linyugang/p/9138989.html
Copyright © 2011-2022 走看看