您现在的位置: 爱51代码网 >> 主页设计 >> 文章正文
C#byte【】里的数转换成string时,打印str时每次结尾都是?

C#byte【】里的数转换成string时,打印str时每次结尾都是?

byte[] buf= {9,10,20,10,9,8,8,5,4,190,255}; string str = null;               str = System.Text.Encoding.Default.GetString(buf, 0, 11);             byte[] temp = System.Text.Encoding.Default.GetBytes(str);

问题:为什么我把byte【】里的数转换成string时,打印str时每次结尾都是? 的字符在终端下,

当我把str重新转换成byte【】时 最后一个值变调了255 变成了? 16进制的3f


ps我现在的工作主要的想把 client.recv()回来的字符转化成字符串类型的,可是现在字符串的结尾值会变调。现在该怎么办呢,亲、、、、、、、、、、、、、、、 buf 接收的字符串是什么? 你们两方的编码要统一,最好别用Encoding.Default,是byte还是char,他们的范围是不一样的

这里是你用错了编码,必须用UTF8而不能是ASCII编码,Default编码就是ASCII编码,而ASCII编码是7位的字节,从 U+0000 到 U+007F,因此在转换到字符串的时候就丢失了第8位的数据,再转回来自然不正确了。
正确的做法是:

C# code?byte[] buf= {9,10,20,10,9,8,8,5,4,190,255}; string str = null; str = System.Text.Encoding.UTF8.GetString(buf, 0, 11); byte[] temp = System.Text.Encoding.UTF8.GetBytes(str);

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    java怎么实现html转为pdf
    lotus数据列表文档个数如何实时统
    lotus代理中LS如何将字符串保存到
    在lotus BS系统里怎样方便实现统
    undefined reference timer_crea
    linux文件/usr/lib破坏了,还原后
    java如何判断一个字符串里的数字
    undefined reference timer_crea
    Failed to open eth0
    android手机无法与eclipse或电脑
    C/C++洗牌算法源代码
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    asp中有一段javascipt的网页鼠标
    sharepoint 2010 获取用户信息Us
    设计包含max函数的队列
    C#的session取不到值
    C# GridView绑定数据库中数据
    Session Cookie without Sec
    webform中文本框textbox自动
    WPF控件的访问限制没有了
    ""!=transStatus与transStat
    WPF如何获取鼠标坐标的颜色R
    WPF下System.Windows.Ink的手
    ViewBag.AllowRemember ?? t
    c#serialport IO异常,请问是
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |