首页 新闻 会员 周边 捐助

WM6.0 中文乱码

0
悬赏园豆:80 [待解决问题]
你好。再次向您请教问题。我的应用部署在WM6.0手机上。
有一个功能是从服务端查询数据,提交请求,解读返回:
 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
 HttpWebResponse res = (HttpWebResponse)req.GetResponse();
 sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.GetEncoding("GBK"));
 string backstr = sr.ReadToEnd();
我在模拟器,公司的测试机上,返回的串(包含汉字),都是正常的。
在客户的几台机器上,中文总是乱码(数字和英文字符没问题).
返回的数据是在LISTVIEW中显示的。listview和一些button按钮的字体设置的
字体是Microsoft Sans Serif。
listview中,columnheader中的中文是正常的,button中的汉字也是正常的。
基本推断在这个地方出问题了:
 sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.GetEncoding("GBK"));
 string backstr = sr.ReadToEnd();
是不是在使用GBK重新编码时,使用了不合适的字库?Encoding.GetEncoding("GBK")到底依赖什么字库?
(在注册表中有指示吗?我只知道注册表中的\Software\Microsoft\FontLink\SystemLink中存了些字体。)
这个问题折磨我很长时间了,请黎老师给些指导
附:
返回的乱码:
{"state":"0","appMessage":"璇锋眰鎴愬姛",                           //注: "璇锋眰鎴愬姛"应该是 "请求成功"
"jsonarray":[
{"mc":"楠愯揪","id":"402880ef0d35ed44010d3e3b3cea3e28"},
{"mc":"涓滈鏃ヤ骇闃冲厜","id":"402880ef0d35ed44010d3e3b6f453e29"},
]}
从返回的内容看,重新编码从服务返回的流使,使用的字库是支持中文的(重新组码的结果中没有方块(口))。
luzy的主页 luzy | 初学一级 | 园豆:122
提问于:2011-11-01 09:15
< >
分享
所有回答(1)
0

你客户机器支持什么范围字字符集?

试一下GB2312。

System.Text.Encoding.GetEncoding("GB2312")

根据我的经验不是每台设备上都支持GBK字符集。

胡屯 | 园豆:714 (小虾三级) | 2011-11-01 11:24

是从服务端读取流,服务端采用GBK编码的。客户端只能采用GBK。

支持(0) 反对(0) luzy | 园豆:122 (初学一级) | 2011-11-01 13:29

@luzy: 

先確認客戶設備是否支持GBK字符集。

不如拷貝一份含GBK字符內且不是GB2312字符的文本到客戶設備上,然後打開試試,看是否能正常顯示。多試一些字符,很多廠商量產的設備沒有購買中文字庫,而這樣的字庫所支持的字符集範圍是不確定的,比如支持GB2312,部份支持GBK。

支持(0) 反对(0) 胡屯 | 园豆:714 (小虾三级) | 2011-11-01 14:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册