zoukankan      html  css  js  c++  java
  • 中控考勤机SDK使用中员工姓名的处理( c# )

    公司使用的考勤机是中控的指纹考勤机,但是中控的型号乱七八糟,通过程序读出来的型号和实际标的型号不一致。

    另外,提供的开发包的C#版本的Demo中调用

     axCZKEM1.ReadAllUserID(iMachineNumber);

    后调用

    axCZKEM1.SSR_GetAllUserInfo(iMachineNumber, out sdwEnrollNumber, out sName, out sPassword, out iPrivilege, out bEnabled)

    来获取所有用户信息时,返回的sName(雇员姓名)每次总是在后面多几个字节,虽然显示到Demo中的ListView中时,windows自动屏蔽了乱码,但是程序处理时依然会出现乱码。

    用下面的方法可以解决此问题,并能从sName中解析出正确的雇员姓名。

     //处理名字中多余的字符
                    //utf8编码后的字节数组长度,名字中汉字的个数=(byte[]长度-10)/6+2
                    //提取汉字=字节数组的0开始,到名字中汉字的个数*3
                    if (null != sName)
                    {
                        
                        byte[] nameBytes = System.Text.Encoding.UTF8.GetBytes(sName);
                        if (nameBytes.Length >= 10)
                        {
                            int nameLength = (nameBytes.Length - 10) / 6 + 2;
                            sName = System.Text.Encoding.UTF8.GetString(nameBytes, 0, 3 * nameLength);
                        }
                        /*
                        switch (nameBytes.Length)
                        {
                            case 22:
                                sName = System.Text.Encoding.UTF8.GetString(nameBytes, 0, 12);
                                break;
                            case 16:
                                sName = System.Text.Encoding.UTF8.GetString(nameBytes, 0, 9);
                                break;
                            case 10:
                                sName = System.Text.Encoding.UTF8.GetString(nameBytes, 0, 6);
                                break;
                            default:
                                sName = getChinese(sName);
                                break;
                        }
                       */
                    }
                    else
                    {
                        sName = "null";
                    }

    顺便吐槽下中控的考勤机的SDK:

    无法获取指定时间内的考勤数据,必须每次都全量下载。

    顺便赞一下Demo的质量:

    编程风格很严谨,代码注释很详细。赞!

  • 相关阅读:
    .NET Interop 工具集
    关于正弦波的算法
    Windows Phone 系列 本地数据存储
    Xaml cannot create an instance of “X”
    Windows Phone 系列 使用 MVVM绑定时无法获取当前值
    Windows Phone 系列 应用程序图标无法显示
    Windows Phone 系列 WPConnect无法上网的问题
    Windows Phone 系列 使用 Windows Phone 保存铃声任务
    WP7.5提交应用
    Windows Phone 系列 动态删除ObservableCollection
  • 原文地址:https://www.cnblogs.com/sixiweb/p/4809347.html
Copyright © 2011-2022 走看看