获得网页编码格式时charset取不到

问题描述

html网页的内容大致如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>CSDN首页 </title> ... </head> <body> ..... </html> 我使用以下语句抓取类似上面的网页: URL url = new URL("http://www.csdn.net"); HttpURLConnection connection = (HttpURLConnection)url.openConnection(); //建立连接后,使用下面两句取得网页的编码格式 String contentType = connection.getHeaderField("Content-Type"); contentType = connection.getContentType(); 无论是哪一句,得到的contentType的值都是text/html,而不包含后面的charset=gb2312,这是为什么? 我注意到一个问题,content="text/html; charset=gb2312"这里,在;和charset之间有一个空格,是否因为这个空格的缘故,而不能得到content-type的准确值 还有没有其他的办法可以得到页面的编码字符集?

解决方案

可以用 HttpClient jar包 GetMethod method = new GetMethod(url); String charset = null; if(StringUtils.isEmpty(encoding)){ charset = method.getRequestCharSet(); if("ISO-8859-1".equalsIgnoreCase(charset)) //未指定编码时返回ISO-8859-1, 改为默认的GB2312 charset = "GB2312"; }
解决方案二:
String charset = connection.getContentEncoding();
解决方案三:
我用的是:httpclient的HttpMethodBase method;method = new GetMethod(url);identifyAsDefaultBrowser(method);charset = method.getResponseCharSet();

时间: 2024-09-16 16:38:18

获得网页编码格式时charset取不到的相关文章

python-为何用Python做爬虫时抓取下来的页面跟源代码不一样?

问题描述 为何用Python做爬虫时抓取下来的页面跟源代码不一样? 代码如下: -*- coding:utf-8 -*- import urllib import urllib2 import re baseURL = 'http://zhidao.baidu.com/question/491268910.html' headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, li

网页排版时常用的5个CSS基础

介绍5个网页排版时常用的CSS基础,当然,包括图文混排,是怎样做到的. 本文给大家介绍在文章的排版中经常会用到的几个CSS基础,当然,包括图文混排,是怎样做到的. 1. 首行缩进     你知道的,从小学,老师就教我们,段落的开头应该空两格.而你使用word的时候,也有首行缩进这个功能,但在html中你的空格键好像起不了作用了.当然,你可以用 来代替一个空格,但这不是理想的方式,用CSS吧,简单,有效: <p style="text-indent:2em;">你的内容<

网页设计时必须思考的5个网页设计目标

文章描述:我在以下列出的5个目标,是在每一次开始网页设计时都必须思考的. 这是最近看到的一篇很不错很实用的文章,主要侧重于设计前的思考.思路,看完有很大的启发,所以推荐给大家,因为是翻译的,翻译不准确的地方还请见谅~ 在生活中,拥有目标是非常重要的. 特别对于网站设计而言,因为没有目标就没有动力,更无法衡量你的成功与否. 目标有助于设计师专注于重要的事情,把握设计方案的走向.目标能帮助设计者设计出令人眼前一亮的网站. 设计任何一个网站,过程都是大同小异的:我完成了一份设计稿,然后把它交给客户.虽

浏览器如何使网页收藏时只显示图标

  浏览器收藏栏方便了我们浏览上网,点击一下就可以打开想要的网页,但是随着日积月累,收藏栏上的网站越来越多,占的很满,既不美观也影响使用,所以我们可以自定义标题宽度. 下面给大家介绍具体步骤. 第一步:打开ie浏览器,我们浏览器书签栏显示了书签的全标题. 第二步:在任意书签上右击,选择"自定义标题宽度". 第三步:系统给了三个选项,默认的是"长标题"项. 第四步:我们可以将其修改为"短标题",可以看到只显示了标题前部分,其余的以省略代替. 第五步

Asp.net 如何让网页运行时就显示和按F11一样的全屏效果

问题描述 Asp.net 如何让网页运行时就显示和按F11一样的全屏效果 网页在加载时就使其全屏,隐藏浏览器的所有栏.麻烦各位大神,最好有代码,谢谢 解决方案 有两种方案,第一种用flash,这个可以直接全屏,每种用activex,也可以全屏,如果用html5也可以实现 解决方案二: 用一个lightboxbox效果遮盖住页面显示内容就好了,f11的效果asp.net实现不了,客户端的js也实现不了(除非IE6).一定要实现f11只能用插件或者flash了.. 解决方案三: 原声的代码做不到,再

简单的web开发问题-网页开发时,如何提示密码不正确?

问题描述 网页开发时,如何提示密码不正确? 输入用户名和密码后,通过struts验证.如果密码不正确,如何在当前页面给出提示? 解决方案 js脚本,可以去网上找一些例子看一下 解决方案二: 一般是两种方式,一是在原页面的某个部分(比如最上面)显示错误信息:另一种是弹出一个提示框(Alert)报错. 解决方案三: 使用ajax进行验证 解决方案四: struts2的addFieldError就能很好的提示错误信息啦 解决方案五: 可以自己写个提示框.

微信 网页授权-微信进行网页授权时,拿到了code,怎么获取不到openid?(如图)

问题描述 微信进行网页授权时,拿到了code,怎么获取不到openid?(如图) 求大神指教,看看问题出现在什么地方,找了好久不知道原因所在 解决方案 解决方案二: 解决方案三: 解决方案四: [微信]网页授权,获取CODE,OPENID, 解决方案五: 微信接口获取数据大部分要求用GET的方法获取数据,你用成了POST方式,

php通过curl单独抓取网页可以,抓取多个就会出错

问题描述 php通过curl单独抓取网页可以,抓取多个就会出错 使用curl单独抓取http://jobs.hubu.edu.cn/Detail.aspx?ArticleChannelId=81&ArticleId=5722可行,但是如果抓取相同类型的一系列网站就会出错,将他们放在数组 $linkList中,分别是http://jobs.hubu.edu.cn/Detail.aspx?ArticleChannelId=81&ArticleId=5722,http://jobs.hubu.e

firefox-项目中使用kindeditor后台使用的jsp但是多图上传时session取不到值,怎么解决?急急急

问题描述 项目中使用kindeditor后台使用的jsp但是多图上传时session取不到值,怎么解决?急急急 项目中的后台使用的是jsp,上传多图时使用火狐浏览器时session取不到,用ie和chrome就没有问题,上网查资料说是用的连接池不同,我应该怎么才能在jsp后台拿到session值,请求大神帮忙 解决方案 flash发送的请求不附带cookie,需要自己配置额外的session验证信息. 如果你ie和chrome能获取到,应该用的不是flash.. 解决方案二: 看看火狐是不是禁用