如果你在WP开发中遇到过中文乱码,多数原因就是编码问题。比如用webclient获取远程网页的内容,如果目标网页是GB2312编码的,那你取得的很可能是乱码。就像这样:

虽然webclient的构造函数支持传递编码方式进去,但WP默认Encoding枚举中没有GB2312编码:

聪明的你可能会用Encoding.GetEncoding(“GB2312”)强撸,结果灰飞烟灭:

好在这个问题已经有高手给解决了。只要添加这三个文件到项目中去就能直接使用。

big5.bin
gb2312.bin
DBCSEncoding.cs

这些文件在我的SkyDrive共享上都能下载到。https://skydrive.live.com/?mkt=zh-CN#cid=E0A43B71445444C5&id=E0A43B71445444C5!10177

之后,你就可以通过这个方法获取GB2312编码了:

 

DBCSEncoding.GetDBCSEncoding("gb2312")

现在解析GB2312编码的内容就完全正常了: