window phone 解决GB2312汉字乱码问题
模拟登陆网站,返回状漤逗庞俄态值。但是如果状态值里面如果有汉字, 就会是乱码。
经过Fid颊俄岿髭dler发现,网站返回的charset 为GB2312。
那么,我需要在接受的时候,使用GB2312编码。但是 WP 本身并没有GB2312编码
那么可以通过第三方的GetDBCSEncoding 进行GB2312编码的转换。
我已经共享了这个文件夹。在百度云盘。
http://pan.baidu.com/s/1pJnvcZT
【有一个 cs文件,两个Bin文件。都不要修改名称】
结构如图所示:
首先打开你的 VS 2010 你的WP项目文件。新建一个文件夹。名称为gb2312
然后 在 文件中--->添加--->现有项。将如上3个文件放入文件夹中
然后 设置 2个bin文件的属性
【生成操作为 嵌入的资源。如图所示】
对于DBCSEncoding.cs
设置其属性为编译。
-----------------------------
至此,准备过程结束。
开始进行直接调用了。
通过DBCSCodePage.DBCSEncoding.GetDBCSEncoding("gb2312")
发挥GB2312的编码
【(注意:gb2312要和你的文件夹目录里面的gb2312.bin 大小写一致)】
下面是一段代码:在 response读取来自网络的数据时,进行GB2312编码
HttpWebResponse res = req1.EndGetResponse(ar) as HttpWebResponse;
Stream stream = res.GetResponseStream();
StreamReader reader = new StreamReader(stream, DBCSCodePage.DBCSEncoding.GetDBCSEncoding("gb2312"));
string backstr = reader.ReadToEnd();
stream.Close();
reader.Close();
res.Close();
那么才输出 backstr之后,发现汉字已经编码了,可以正常显示了。