「java抓取网页乱码」java页面乱码怎么解决
今天给各位分享java抓取网页乱码的知识,其中也会对java页面乱码怎么解决进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java写的网页抓取,出现了乱码情况,求教。
- 2、java使用htmlparser抓取网页信息,中文字符显示为“??”,如何解决?
- 3、用java HttpURLConnection 读取网页中文乱码
- 4、java怎么把网页乱码
java写的网页抓取,出现了乱码情况,求教。
这个跟你要抓取的网页相关、
你要看网页默认设置的是什么
编码
。比如
百度
:在
页面
上点右键
选择编码
默认的为gb2312
所以你抓百度的时候就应该用gb2312
、而csdn默认的是utf-8、你抓取的时候就应该设置成utf-8。亲测可用、希望能帮到你。
(测试环境
ie
、空白地方点右键
找到编码就能看到页面的默认编码、不同
浏览器
查看编码情况不同,视情况而定)
java使用htmlparser抓取网页信息,中文字符显示为“??”,如何解决?
建议采用jsoup来抓取和解析文件。
jsoup支持css选择器。
下面是一个简单的例子:
Document doc = Jsoup.parse(in/*文件流*/, charset/*字符集*/, service/*相对地址*/);
Element e = doc.select("div[id=myid]").get(0);// 用选择器选择元素
ListNode childs = new LinkedListNode(e.childNodes());
for (IteratorNode iter = childs .iterator(); iter.hasNext();) {
iter.next().remove();// 移除找到元素的所有子元素
}
e.appendText("sometext"); // 追加新内容
String content = doc.html(); // 生成结果
用java HttpURLConnection 读取网页中文乱码
出现这种情况,说明读取到的是iso8859-1格式,不能识别中文编码,所以需要转换一下编码格式才可以正常显示的,完整代码举例:
String data = "version=1410idType=101idNumber=4107701214512ext1=1";
System.out.println(data);
URL url = new URL("");
StringBuffer bankXmlBuffer = new StringBuffer();
//创建URL连接,提交到银行卡鉴权,获取返回结果
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.setRequestProperty("User-Agent", "directclient");
PrintWriter out = new PrintWriter(connection.getOutputStream());
out.println(data);
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(connection
.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
bankXmlBuffer.append(inputLine);
}
in.close();
String data = new String(bankXmlBuffer.toString().getBytes("iso-8859-1"), “utf-8”);
System.out.println(data);
java怎么把网页乱码
1.javaweb怎么处理中文乱码
1.UTF-8国际编码,GBK中文编码。GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立;
2、web tomcat:默认是ISO8859-1,不支持中文的
3.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码;
4.getBytes() 是通过平台默认字符集进行编码;
二、引入
在学习任何一门技术时,经常会有初学者遇到中文乱码问题,比如MySQL,是因为在安装时没有设置;而在Servlet中,也会遇到中文乱码问题;
比如:
OutputStream out = response.getOutputStream();
out.write(String );
输出中文时可能会出现乱码;
比如:
[java] view plain copy
2.如何解决Java WEB应用中的乱码问题
一方面代码里面的设置,比如在jsp里,
另一方面就是eclipse的设置,idea不熟悉,
一般就那几个地方,一,在eclipse里右键项目名字-resource,会有text file encoding的设置
二,菜单栏里Windows- preferences- 可以在搜索条里搜encod, 会出来两个,content type 和workspace 这两个地方也是设置字符集的
或者直接找General -- workspace 同上设置 ,General- Content Type 这里面是各种文件的编码格式,看下乱码的文件格式,如是注释文件,xml,或者java,dtd等
3.JAVA开发中,常见的乱码有哪几种,如何解决
1、浏览器调用jsp,html等页面中文显示乱码
此情况需满足两个要求:
(1)文件本身是以utf-8编辑保存的(myEclipse中在properties中鼠标右键选择utf-8)
(2)浏览器用utf-8解析:
(手动)==; 在浏览器中右键选择编码格式为utf-8
(智能)==; 在文件中写入如: 通过标签模拟response头,起到告诉浏览器用utf-8的编码解析
(智能)== response.setContentType("text/html;charset=UTF-8");起到告诉浏览器用utf-8的编码解析
常用:
或
2、通过浏览器调用servlet,页面显示乱码。
Servlet乱码分为request乱码和response乱码;
(1)response乱码问题
解决方法:
在网上很有效的解决方法是添加:
response.setCharacterEncoding("UTF-8");
解决不了,后来又搜到一条解决方法是:
response.setContentType("text/html;charset=utf-8");或者 response.setHeader("content-type","text/html;charset=UTF-8");告诉浏览器用utf-8解析。(setHeader是HttpServletResponse的方法。如果想在拦截器Filter中设置字符编码,则无此方法,因为Filter的doFilter方法的参数类型是ServletResponse)
两句都填上,后来终于解决了这个问题;
其实我们应该思考一下本质:
response.setContentType("text/html;charset=UTF-8"); 目的是为了控制浏览器的行为,即控制浏览器用UTF-8进行解码;
response.setCharacterEncoding("UTF-8");目的是用于response.getWriter()输出的字符流的乱码问题。如果是response.getOutputStream()是不需要此种解决方案的,因为这句话的意思是为了将response对象中的数据以UTF-8解码后的字节流发向浏览器;
4.解决java中文乱码方法是什么呢
解决java中文乱码:cd /usr/lib/jvm/java-6-sun-1。
6。0。
13/jre/lib/fonts sudo mkdir fallback cd fallback sudo cp /usr/share/fonts/truetype/arphic/uming。 ttc /usr/lib/jvm/java-6-sun-1。
6。0。
13/jre/lib/fonts/fallback sudo mkfontdir sudo mkfontscale 考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。 其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。
如有侵犯您的权利,请联系我们,本站会立即予以处理。 编辑特别推荐: Java读取文件内容再编辑 JS获取单选与多选按纽的值 每一种文件类型所对应的ContentType。
5.如何解决Java项目中的中文乱码
1. 设置工作空间的编码:
编辑器的编码会影响到所有的项目中的字符的显示,可以说是作用最为广泛的设置,每一个项目都会受到这个设置的影响。点击菜单栏中的窗口(Window)— —选项(Preferences)。
点击常规(General)— —工作空间(Wordspace),然后在右侧的文本文件编码格式(Text file encoding)中选择你想要设置的编码格式,系统默认的格式为GBK。
2. 设置项目的编码:
如果其他的项目中不存在乱码问题,只是个别项目显示时出现乱码,那么我们不需要设置工作空间的编码,只需要修改项目的编码即可。
选中项目后,右键点击,在弹出的菜单中点击属性(Properties)。
在弹出的属性窗口中,选择资源(Resource)— —点击选择Other(其他),然后选择你想要的编码格式。
3. 设置单个文件的编码:
只是个别文件出现了乱码,那么设置个别文件的编码格式就可以解决问题了。选中有乱码的文件,然后点击右键。
在弹出的菜单中选择属性(Properties)。
在弹出的属性窗口中选择资源,点击Other(其他)后设置个别文件的编码方式
关于java抓取网页乱码和java页面乱码怎么解决的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。