关于使用java.net.URL抓取网络上的资源发生乱码的解决办法
2013/8/22 21:32:32 | 阅7306 | 来源:好空间网络 [打印] [关闭] |
在做jsp网站用QQ登陆,遇到QQ名称会有一些特殊字符,但是我获取后显示为乱码~~
刚刚终于解决了这个问题,记录下来
用 java.net.URL 抓取网络是的资源的时候有时候偶尔会遇的特殊字符,这个时候就会发生乱码,怎么解决这些特殊字符的乱码呢??
第一要知道要抓取的网页他的字符编码,这个一般是utf-8的
主要是我们自己的程序
String sCurrentLine20; String sTotalString20; sCurrentLine20=""; sTotalString20=""; java.io.InputStream l_urlStream20; java.net.URL l_url20 = new java.net.URL("https://www.jspkongjian.net/"); java.net.HttpURLConnection l_connection20 = (java.net.HttpURLConnection) l_url20.openConnection(); l_connection20.connect(); l_urlStream20 = l_connection20.getInputStream(); java.io.BufferedReader l_reader20 = new java.io.BufferedReader(new java.io.InputStreamReader(l_urlStream20)); while ((sCurrentLine20 = l_reader20.readLine()) != null) { sTotalString20+=sCurrentLine20; } out.print(sTotalString20+"<br><br>");
把这里的
java.io.BufferedReader l_reader20 = new java.io.BufferedReader(new java.io.InputStreamReader(l_urlStream20));
修改为
java.io.BufferedReader l_reader20 = new java.io.BufferedReader(new java.io.InputStreamReader(l_urlStream20,"UTF-8"));
这样就ok了, 就是指定下接收的参数也为utf-8 这样就是别人传递给你什么样子,你接收后就是什么样子了...