【发布时间】:2020-05-04 11:16:30
【问题描述】:
当我们共享指向我们的 magnolia 网站(在 Tomcat 上运行)的链接时,变音符号显示为问号。
页头有<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,响应头有内容类型text/html;charset=UTF-8和内容编码gzip。什么可能导致 Facebook 上的字符编码错误?
【问题讨论】:
-
可能他们不是实际上没有正确编码为UTF-8?仅仅因为您说他们是通过
Content-Type,并不会自动使如此。 -
@CBroe,如何检查实际编码?我导出了页面的JCR-Node,第一行指定了编码:
<?xml version="1.0" encoding="UTF-8"?> -
您有显示问题的实际示例 URL 吗?
-
Facebook 共享调试器生成以下内容:
curl -v --compressed -H "Range: bytes=0-524288" -H "Connection: close" -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" "https://www.mieterverband.ch/mv/politik-positionen/news/2019/Jetzt-w%C3%A4hlen-f%C3%BCr-mieterfreundliche-Mehrheiten-in-Bern.html",这会产生没有内容的响应。如果我遗漏了Range字段,我会收到消息正文。所以过去Facebook可以爬取网站的时候,可能是编码错误,但现在问题似乎是Facebook无法爬取页面。 -
它究竟在哪里生成这个 cURL 代码?不确定它会从哪里获得该字节范围。该 URL 返回一个包含标题
Content-Length: 12298的响应,所以我看不出从哪里可以得到请求bytes=0-524288开头的想法。
标签: facebook tomcat utf-8 character-encoding magnolia