str = new String(str.getBytes("UTF-8"), "GB2312");
我的问题应该描述的再详细一些. 就是我想下载一个html页面, 下载后才知道其中的页面编码的,有的是utf-8有的是gb2312, 若在下载前指定编码方式: in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "utf-8")); 则后面读出的内容是没问题的; 若下载前未指定编码方式,则系统用默认的编码方式: in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 尽管也能正确解析出页面头部的内容,也可以知道其编码方式,但如果这时候才知道是utf-8,那就已经迟了,因为in里面存储的是原始流按系统默认的编码方式的字符了.如何才能正常显示这些文本呢?
new String(s.getBytes(),"gb2312");试下吧!
http://www.regexlab.com/zh/encoding.htm
就是我想下载一个html页面, 下载后才知道其中的页面编码的,有的是utf-8有的是gb2312,
若在下载前指定编码方式:
in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "utf-8"));
则后面读出的内容是没问题的;
若下载前未指定编码方式,则系统用默认的编码方式:
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
尽管也能正确解析出页面头部的内容,也可以知道其编码方式,但如果这时候才知道是utf-8,那就已经迟了,因为in里面存储的是原始流按系统默认的编码方式的字符了.如何才能正常显示这些文本呢?