10-01
16

使用HttpClient获取网页字符编码

使用HttpClient获取网页字符编码
使用HttpClipent取得网页内容,但不同的网页编码又不一定一样
这样在取得网页响应流的时候,就要分别处理.
一般来说,常见的网页字符集有UTF-8,iso-8859-1,GBK,GB2312几种
当然,你要是一外文高手,全球那么多语言,全搞一遍,就不止这个数目了.
这里取得网页字符集编码只考虑最常见的情况,使用的HttpClient为4.0版本
基本上是目前最新的.下面来看代码.

/**
     * 正则匹配
     * @param s
     * @param pattern
     * @return
     */
    public boolean matcher(String s, String pattern)
{
        Pattern p = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE
                + Pattern.UNICODE_CASE);
        Matcher matcher = p.matcher(s);
        if (matcher.find())
{
            return true;
        } else
{
            return false;
        }
    }
    /**
     * 获取Response内容字符集
     * @param response
     * @return
     */
    public String getContentCharset(HttpResponse response)
{
        String charset = "ISO_8859-1";
        Header header = response.getEntity().getContentType();
        if (header != null)
{
            String s = header.getValue();
            if (matcher(s, "(charset)\\s?=\\s?(utf-?8)"))
{
                charset = "utf-8";
            } else if (matcher(s, "(charset)\\s?=\\s?(gbk)"))
{
                charset = "gbk";
            } else if (matcher(s, "(charset)\\s?=\\s?(gb2312)"))
{
                charset = "gb2312";
            }
        }
        return charset;

    }


文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.