java内部编码使用utf-16,需要先用网页的编码解析从网页获取的bytes数组,例如如果网页用gbk,转换可以写成new String(bytes,"gbk")。
另外你的流读取有点怪,应该是写错了吧
出现这种情况,说明读取到的是iso8859-1格式,不能识别中文编码,所以需要转换一下编码格式才可以正常显示的,完整代码举例:
String data = "&version=1410&idType=101&idNumber=4107701214512&ext1=1";
Systemoutprintln(data);
URL url = new URL(">
举个例子,现在我们都会汉语,有一天一个日本鬼子(客户端请求的数据,拥有和你不同的编码)来了和你(服务端是另一种编码格式)对话。你会想着他会说什么王八蛋之类,但是他却说的八嘎呀路,这时候你就蒙了!用你的语言根本不理解也不知道他说的是什么,所以你的脑海里出现了很多问号代表你解释不了
java文件读取的时候有中文就很出现乱码,通常获取到的文件中通常都是“iso8859-1”格式,需要转换为“UTF-8”格式。
如:String str = new String(strgetByte("iso8859-1"),"UTF-8");进行下强制转换后在进行读取即可。
备注:通常格式有GBK、UTf-8、iso8859-1、GB2312,如果上面的强制转换不成功,依次进行这些格式的尝试,肯定是可以解决问题的。
get方式提交的参数编码,只支持iso8859-1编码。
因此,如果里面有中文。
在后台就需要转换编码,如下
String zhongwen = requestgetParameter("zhongwen");
zhongwen = new String(zhongwengetBytes("iso8859-1"),"GBK");
前提是你页面编码就是GBK,如果是utf-8,那上面那句代码后面就改成utf-8
URLConnection context = urlopenConnection();
InputStream in = contextgetInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in, "gbk"));
包装流的时候要加入网站的编码 ,gbk和utf-8都试试
以上就是关于JAVA通过HTML获取网页内容,中文显示乱码全部的内容,包括:JAVA通过HTML获取网页内容,中文显示乱码、java怎么把网页乱码、用java HttpURLConnection 读取网页中文乱码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)