java使用sax解析google weather api
URLTool.java
?
$.ajax({ url:"${requestScope.basePath}/main/weather/getWeatherJson.action", data:"city="+encodeURI(encodeURI(karea)), dataType:"json", beforeSend:function(){ $('#weatherstatus').html('正在查詢請稍後....');}, success: function(data){ showweather(data); }, error:function(){ $('#weatherstatus').html('<span style="background:red;">出錯啦,請稍後再試</span>'); }});? 其中注释部分代码为对传来的城市进行编码String temp=null;try {temp = URLEncoder.encode(city,"utf-8");//把接收過來的城市中文進行編碼} catch (UnsupportedEncodingException e1) {e1.printStackTrace();即,如果传来的中文没有经过编码,而使用url在网络上进行传输的话可能会发生乱码,所以最好是经过指定格式的编码之后再让其进行传输。由于这个项目接收google传来的天气格式为http://www.google.com/ig/api?hl=zh-tw&weather=,即为台湾地区的天气,所以xml中字体都是以繁体中文显示的,所以要想获得正确的繁体中文而不发生乱码,就得在读取xml文件的时候指定读取编码格式,即BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,"big5"));如果http://www.google.com/ig/api?hl=zh-cn&weather=,则设置为BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,"gb2312"));