如怎么把StreamReader 的内容转换成unicode?
StreamReader sr=new StreamReader("",Encoding.Default);还有一种情况:从下载的网页:
byte[] buf = new WebClient().DownloadData(uri);
怎么把buf转换成unicode?高手help

解决方案 »

  1.   

    没有什么办法。假设是http访问,人家http协议中就有服务器响应客户端请求时在返回的消息头和消息体中关于编码的规范协议。至于你说随便一个byte[]也要说明编码,这我想没有什么规范可言。你就是应该提醒服务提供者应该规范地设计服务,否则(如果没有可稳定不变的测试规范那么)就放弃这个服务的输出。写Encoding.Default不叫作什么“未知编码”,实际上其意义很明确,就是你的操作系统的编码。比如说同样的程序,如果你写Encoding.Default,那么在简体中文操作系统上就是gb2312,在日文的操作系统上可能是另外一个结果,在繁体中文操作系统上可能是另外两个结果,在英文的操作系统上可能是另外3个结果(因为英文也有很多小种类)。所以同一个程序虽然你写Encoding.Default,但是在不同操作系统上执行时机过可能完全是乱七八糟的。只有必须是才使用Encoding.Default,不要胡乱使用Encoding.Default。
      

  2.   

    记住,只有必须使用时才使用Encoding.Default,其它时间使用明确的编码规则。谁输出byte[]数据,谁负责制定编码规范,接收端要按照所访问的服务的规范定义去处理编码。
      

  3.   

    多谢,还有个问题想请教一下你:
    http://topic.csdn.net/u/20120126/16/120a8f36-308e-4fc4-a7f7-2c1d1f8321ae.html