我们有一个阿拉伯语网站,我们正在尝试在脸书上分享一个网址。网址看起来像
http://www.website.com/ar http://www.website.com/ar/??????-??????-??????-??????-??????/???/story/75
问题是 Facebook 没有在上面的链接上显示缩略图。
当我们通过fiddler调试这个时,我们发现facebook尝试访问的url与上面给出的不一样,这个url就像
www.website.com/ar/%c3%98%c2%b4%c3%98%c2%a7%c3%99%e2%80%a1%c3%98%c2%af%c3%99%e2%80 %b0-%c3%98%c2%b9%c3%98%c2%b1%c3%99%cb%86%c3%98%c2%b6-%c3%98%c2%a7%c3%99%e2 %80%9e%c3%98%c2%a3%c3%98%c2%b2%c3%99%c5%a0%c3%98%c2%a7%c3%98%c2%a1-%c3%98% c2%a7%c3%99%e2%80%9e%c3%98%c2%b9%c3%98%c2%a7%c3%99%e2%80%9e%c3%99%e2%80%a6% c3%99%c5%a0%c3%98%c2%a9-%c3%98%c2%a8%c3%98%c2%b9%c3%99%c5%a0%c3%99%cb%86%c3 %99%e2%80%a0-%c3%98%c2%b9%c3%98%c2%b1%c3%98%c2%a8%c3%99%c5%a0%c3%98%c2%a9/ %c3%99%e2%80%a6%c3%99%cb%86%c3%98%c2%b6%c3%98%c2%a9/故事/75
我需要知道 facebook 对如图所示的网址做了什么。
我知道的另一件事是这个 url 不是 UTF8 编码的。如果给定的阿拉伯语 url 转换为 UTF8 那么它看起来像下面而不是上面
www.website.com/ar/%D8%B4%D8%A7%D9%87%D8%AF%D9%89-%D8%B9%D8%B1%D9%88%D8%B6-%D8%A7 %D9%84%D8%A3%D8%B2%D9%8A%D8%A7%D8%A1-%D8%A7%D9%84%D8%B9%D8%A7%D9%84%D9%85% D9%8A%D8%A9-%D8%A8%D8%B9%D9%8A%D9%88%D9%86-%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9/ %D9%85%D9%88%D8%B6%D8%A9/故事/75
所以我需要知道脸书正在使用哪种编码,或者当我们共享网址时脸书正在做什么来访问以下网址
www.website.com/ar/???-???-???-???-???-???/???/story/75
http://www.website.com/ar/شاهدى-عروض-الأزياء-العالمية-بعيون-عربية/موضة/story/75
那不是一个URI http://en.wikipedia.org/wiki/Uniform_Resource_Identifier(或网址)。这是一个IRI http://en.wikipedia.org/wiki/Internationalized_Resource_Identifier。不幸的是,很多软件不直接支持 IRI(包括 SO,正如您从它仅链接地址的第一部分的方式中看到的那样!)。
因此,如果您希望链接在任何地方都能工作,则必须将其编写为带有 UTF-8-URL 编码路径名的纯 URI,如上一个示例 (%D8%B4
...)。浏览器通常会将地址栏中的编码链接显示为一个漂亮的 IRI,而不管 HTML 文档中的链接是纯 URI。
%c3%98%c2%b4
...这就是当您获取 UTF-8 编码的字节并将它们视为 ISO-8859-1 编码(然后再次对它们进行 UTF-8-URL 编码,从而给出损坏的“双 UTF”)时所得到的结果-8”)。如何将 IRI 引入 Facebook?要么您正在使用一个正在发送 UTF-8 的接口,但该接口需要 ISO-8859-1,要么这只是 Facebook 方面的一个简单的老错误。无论哪种方式,您现在都必须使用 URI 版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)