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的质量:

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

  • 相关阅读:
    windows下vagrant使用及工作环境配置
    使用docker搭建lnmp环境
    Docker常用命令
    [docker] 管理docker容器中的数据
    python初始化父类错误
    Linux--
    用少于2MB内存存下5百万个介于0到1千万之间的整数
    k路归并:数组、链表
    剑指offer新思路
    阿里电话面试
  • 原文地址:https://www.cnblogs.com/sixiweb/p/4809347.html
Copyright © 2011-2022 走看看