我正在尝试从以下网页解析标题:http://kid37.blogger.de/stories/1670573/
当我在title元素上使用apache.commons.lang StringEscapeUtils.escapeHTML方法时,我得到以下内容
Das hermetische Caf�: Rock & Wrestling 2010
然而,当我在我的网页上使用utf-8编码显示它时,它只显示一个问号。
使用以下代码:
String title = StringEscapeUtils.escapeHtml(myTitle);
如果我通过这个网站运行标题:http://tools.devshed.com/?option=com_mechtools&tool=27我得到以下输出似乎正确
TITLE:
<title>Das hermetische Café: Rock & Wrestling 2010</title>
BECOMES(我期待使用escapeHtml方法):
<title>Das hermetische Café: Rock & Wrestling 2010</title>
任何想法?感谢
答案 0 :(得分:28)
U + FFFD(十进制65533)是“替换字符”。当解码器遇到无效的字节序列时,可能(取决于其配置)将 替换为损坏的序列并继续。
“损坏”序列的一个常见原因是应用了错误的解码器。例如,解码器可能是UTF-8,但页面实际上是用ISO-8859-1编码的(默认情况下,如果在内容类型标题中没有指定另一个或等效的话)。
因此,在您将字符串传递给escapeHtml
之前,“é”已被替换为“ ”;该方法正确编码。
相关页面使用ISO-8859-1编码。将获取的资源转换为String
时,请确保使用该解码器。