【发布时间】:2011-02-22 11:43:04
【问题描述】:
如何使用java找出网页中字符编码的类型
【问题讨论】:
标签: java
如何使用java找出网页中字符编码的类型
【问题讨论】:
标签: java
打开到 URL 的连接(使用 URL.openConnection()),并解析 getContentType() 方法返回的内容类型(应该包含字符集)。如果此标头中不存在,您可能必须解析 HTML 内容并查找诸如
之类的标记<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
【讨论】:
<?xml version="1.0" encoding="ISO-8859-1" ?>。 (如果存在,它应该在文档的开头。)
我相信这正是您所需要的。既有代码又有解释。 http://nadeausoftware.com/node/73
简要总结如下:
创建一个 WebFile 类,其中:
public WebFile( String urlString ) 打开一个URLConnection,读入标头,包括字符编码。如果编码不存在,那么您必须从网页本身读取编码。如果这也不存在,您可以通过Character Encoding Detection Algorithm 试试运气
private Object readStream(int length, java.io.InputStream stream)从流中读取页面数据并使用字符编码返回String,即return new String( bytes, charset ),如果不存在编码或存在编码,则返回通过读取流创建的字节数组编码异常。【讨论】: