winform转码问题,高手请指教

qq178380038 2015-01-07 12:52:17

用 utf-8 得到的字符串 中文乱码

Encoding encoding = Encoding.GetEncoding("utf-8");
sr = new StreamReader(instream, encoding);
string strWrong= sr.ReadToEnd();

用默认编码 中文正常
Encoding encoding = System.Text.Encoding.Default;
sr = new StreamReader(instream, encoding);
string strRight= sr.ReadToEnd();

有没有办法将 strWrong 转为 正确的,我用下面方法测试了还是乱码

byte[] bytes = System.Text.Encoding.UTF8.GetBytes(strWrong);
str= Encoding.Default.GetString(bytes);

str 里面的中文还是乱码, 谢谢

分不是很多

...全文
98 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2015-01-07
  • 打赏
  • 举报
回复
用什么编码解码,取决于当时写入文件的时候是用什么编码编码的 你必须使用对应的编码解码才行
於黾 2015-01-07
  • 打赏
  • 举报
回复
C#默认编码应该是unicode 既然默认编码正常,你用默认编码好了,为什么非要用UTF8呢
tcmakebest 2015-01-07
  • 打赏
  • 举报
回复
楼主自己的实验已经确认了流中为默认编码的字节, 那还有什么理由不用呢. 明明是一字螺丝,非要用十字批吗
江南小鱼 2015-01-07
  • 打赏
  • 举报
回复
utf7、uft8都支持中文(不出现乱码),前提是什么编码格式的流解析成什么格式的字符串
string str = "Hello Jimmy同济大学";
            byte[] byteArray = Encoding.UTF8.GetBytes(str);
            json = Encoding.UTF8
                .GetString(byteArray);
            Console.WriteLine(str);
江南小鱼 2015-01-07
  • 打赏
  • 举报
回复
什么格式的流,转换成字符串的时候用什么样的格式!

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧