问题描述
byte[]buf=newbyte[n];builder.Append(Encoding.ASCII.GetString(buf));如果这样操作的话128-255给砍掉了,如何转换过程中保存8位ascii?麻烦大侠帮忙看下
解决方案
本帖最后由 zaq1015 于 2014-11-26 15:25:10 编辑
解决方案二:
引用楼主zaq1015的回复:
byte[]buf=newbyte[n];builder.Append(Encoding.ASCII.GetString(buf));如果这样操作的话128-255给砍掉了,如何转换过程中保存8位ascii?麻烦大侠帮忙看下
不知道你这样做的意义,编码规则不同,读出来可能会有乱码。发送数据,一般是进行序列化写入字符数组,接收的时候反序列化解析
解决方案三:
引用1楼lovelj2012的回复:
Quote: 引用楼主zaq1015的回复:
byte[]buf=newbyte[n];builder.Append(Encoding.ASCII.GetString(buf));如果这样操作的话128-255给砍掉了,如何转换过程中保存8位ascii?麻烦大侠帮忙看下不知道你这样做的意义,编码规则不同,读出来可能会有乱码。发送数据,一般是进行序列化写入字符数组,接收的时候反序列化解析
+1
解决方案四:
不知道你具体这么写的目的是什么。但是encoding里面有个转换函数Encoding.Covert的方法,你可以根据需要进行转换。
解决方案五:
byte[]buf=newbyte[n];builder.Append(Encoding.UTF8.GetString(buf));
解决方案六:
没错,我很懒——我已经不用ASCII很多年了。
解决方案七:
ASCII是7位带符号的。而Byte是8位无符号。转换的时候不是被砍掉了,而是被转换成了负数。你的数组如果要求用无符号,你就不能用ASCII,不然就把Byte换成SByte
时间: 2024-10-24 06:56:59