最新消息:重新回归WordPress,我要比较认真的开始更新我的博客了。

C#Byte转String无法比较的问题

程序问题 hanlei 1948浏览

读取设备上的Byte转成文字后,怎么比较都没法相等,打印出来一样样的,但就是不相等,而且在循环中比较一次就会跳循环,也没有报错。整的头都大了。

原因

从设备读取的Byte转文字前没有删除Byte末尾的空字节,导致转文字后在文字后边有不可见字符,无法正确对比。

方法

在Byte转文字前把Byte后面的空字节删除,下面附上网上找的一段代码。

//传入要处理的字节组,返加处理后的字节组
public static byte[] ByteCut(byte[] b) {
            byte cut = 0x00;
            var list = new List<byte>();
            list.AddRange(b);
            for (var i = list.Count - 1; i >= 0; i--) {
                if (list[i] == cut)
                    list.RemoveAt(i);
                else
                    break;
            }
            var lastbyte = new byte[list.Count];
            for (var i = 0; i < list.Count; i++) {
                lastbyte[i] = list[i];
            }
            return lastbyte;
}

转载请注明:HANLEI'BLOG » C#Byte转String无法比较的问题