解决windows phone 下读取txt文件乱码问题。

大家好,写此文以便大家遇到此问题时可以得到快速的解决,不像我这样,搞了好长时。

问题:windows phone 中将一个txt文件做为资源,想读取里面的内容,结果老是出乱码问题,

在网上有好多种方法都是解决下载网页编码问题的,但是没有解决读取txt乱码问题的。

解决思路,你的文本文件的编码是GB2312而在silverlight架构下是不支持GB2312的。怎么办呢?办法总是有的,

不如将你的文件重新编码一下吧,编成SL支持的编码方法比如utf-8,unicode等。

1新建一个asp.net网页程序,将txt文件拷到项目中。

2.对其进行编码转换:

代码如下:

string oripath = Server.MapPath("Health1.txt");  //源文件地址
string despath = Server.MapPath("Health2.txt");//转换之后存储在这个文件中
StreamReader sr = new StreamReader(oripath,System.Text.Encoding.GetEncoding("gb2312"));
StreamWriter sw = new StreamWriter(despath,false,System.Text.Encoding.Unicode);
sw.Write(sr.ReadToEnd());
sr.Close();
sw.Close();

(那些using 啊,都没有用,本来就不是想做web的,只是利用他做个中介).

OK,假如你生成了一个新的编码的文件,那就赶快去WP中试试吧。

StreamResourceInfo sri = Application.GetResourceStream(new Uri("/ReadTxt;component/Health2.txt", UriKind.Relative));
StreamReader sr = new StreamReader(sri.Stream,System.Text.Encoding.Unicode);
this.textBlock1.Text = sr.ReadToEnd();
sr.Close();

至此问题解决。

原文地址:https://www.cnblogs.com/hfutwyy/p/2357280.html