帮忙分析奇怪的乱码问题

边城07 2012-10-19 11:13:05
前两天论坛求助获取物流信息的帖子后,采用了“爱查快递”的方案
文档帮助文档如下:http://www.ickd.cn/api/doc.html

我使用如下代码来获取物流信息

String eUrl = expressURL + "&com=" + entity.getExpressCompanyCode() + "&nu=" + entity.getExpressNum();
logger.info("generateExpressInfo:{}", eUrl);
StringBuilder sb = new StringBuilder();
try {
URL url = new URL(eUrl);
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
reader.close();
} catch (Exception e) {
logger.warn("取快递信息出错:{}", e);
return;
}
JSONObject obj = JSONObject.fromObject(sb.toString());
sb = new StringBuilder("<table><tr><th style=\"width:120px;\">时间</th><th>记录</th></tr>");
@SuppressWarnings("unchecked")
Iterator<JSONObject> it = obj.getJSONArray("data").iterator();
while (it.hasNext()) {
JSONObject o = it.next();
sb.append("<tr><td>" + o.getString("time") + "</td>");
sb.append("<td>" + o.getString("context") + "</td></tr>");
}
sb.append("</table>");


为了不出现乱码问题,我全部使用了utf8编码,本地测试OK

但部属到服务器中出现了乱码问题,后来我将url的&encode=utf8参数删除后,服务器也正常

现在的问题是我java程序的其他地方都使用了utf8编码,本地和服务器怎么会不一样呢?
...全文
127 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
边城07 2012-10-19
  • 打赏
  • 举报
回复
windows的服务器,我直接更新到服务器上,源文件上面编码应该一样的
xiaohe8503 2012-10-19
  • 打赏
  • 举报
回复
明显服务器默认编码和本地不一样啊
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(),Charset.forName("UTF-8")));
buqi001 2012-10-19
  • 打赏
  • 举报
回复
服务器的编码集和你本地的不一样吧
ovemoon 2012-10-19
  • 打赏
  • 举报
回复
你要确定你服务器是用的linux 还是window 然后看看你服务器的编码集 是否ok
2 如果还是乱码 你用edplus 或者其他编辑工具看看你的utf-8 格式是不是有bom格式的utf-8
如果还是不能解决问题 再贴出来你的具体环境

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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