首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

URLConnection请求页面少数汉字和标点符号中文乱码是为什么

2013-09-29 
URLConnection请求页面个别汉字和标点符号中文乱码是为什么?得到响应转换成字符串用utf-8解码后,有个别汉

URLConnection请求页面个别汉字和标点符号中文乱码是为什么?
得到响应转换成字符串用utf-8解码后,有个别汉字和标点符号中文乱码是为什么?
例如:大型汽车
使馆汽车               
领馆汽车               
境外汽车               
外籍汽车               
两??三轮摩托??/option>         
轻便摩托??/option>             
使馆摩托??/option>             
领馆摩托??/option> 
[解决办法]
http://jjzx.lywww.com/index.php?m=Index&a=jdwfcx&useUnicode=true&characterEncoding=utf-8 ;
你的问题好像不在这里,你输出时带了编码GBK,而读取(InputStream)的时候没有解码.需要decode.
[解决办法]
说一下楼主的错误吧,我说楼主的解码方式有问题,果然是。
sTotalString += sCurrentLine +"\n";   
你有这么一句是么。
你这时候其实sTotalString是乱码(相对于GBK,而相对于UTF-8是正常的),而你又添加了一个GBK的换行,等到换成UTF-8格式的时候,自然这个换行就乱码了。
你用下面的这种方式来读:


/**
 * 以指定的格式来读取输入流
 */
public static String readStrByCode(InputStream is,String code){
StringBuilder builder=new StringBuilder();
BufferedReader reader=null;

try {
 reader = new BufferedReader(new InputStreamReader(is,code));
 String line;
 while((line=reader.readLine())!=null){
 builder.append(line+"\n");
 }
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return builder.toString();
}


热点排行