繁体   English   中英

java utf-8编码问题

[英]java utf-8 encding problem

我正在使用一个名为HTMLCLEANER的HTML解析器来解析HTML页面,问题是每个页面的编码与另一个页面的编码不同。 我的问题

我可以从任何字符编码更改为UTF-8吗?

在不事先知道编码X的情况下,您无法从编码X无缝“转换”到编码Y. 只需检查它所使用的编码的HTTP响应标头(如果您通过HTTP获取这些HTML页面),然后在HTML解析器工具中使用适当的编码。

我可以从任何字符编码更改为UTF-8吗?

是的,您可以用UTF-8编码表达任何Unicode字符。

更改HTML页面的编码时可能会出现问题:例如,如果页面包含“charset”元标记,

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

你必须更新这个标签,以便它对应于实际的编码。

你从哪里获得HTML页面? 如果从servlet请求中获取它,可以在其上使用getReader()并将其传递给clean() 这将使用正确的编码。 如果从上传中获取,请将输入流传递给clean() 如果您通过http客户端获取它,则需要使用getResponseCharSet()检查响应头Content-Type

public void arreglarString(String cadena) {
    for (int i = 161; i < 256; i++) {
        char car =  (char) i;
        cadena = cadena.replaceAll(car + "", "&#" + i); 
    }

    return cadena;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM