读书人

URLConnection请求页面少数汉字和标点

发布时间: 2013-09-29 11:07:08 作者: rapoo

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();
}


读书人网 >J2EE开发

热点推荐