前两天论坛求助获取物流信息的帖子后,采用了“爱查快递”的方案
文档帮助文档如下: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编码,本地和服务器怎么会不一样呢?

解决方案 »

  1.   

    你要确定你服务器是用的linux 还是window   然后看看你服务器的编码集 是否ok  
     2 如果还是乱码  你用edplus  或者其他编辑工具看看你的utf-8 格式是不是有bom格式的utf-8  
      如果还是不能解决问题 再贴出来你的具体环境
      

  2.   

    明显服务器默认编码和本地不一样啊
    BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(),Charset.forName("UTF-8")));
      

  3.   

    windows的服务器,我直接更新到服务器上,源文件上面编码应该一样的