2010-09-28 84 views
3

我们有一个阿拉伯语网站,我们正试图分享一个Url的脸书。网址看起来像Facebook分享问题非英文网址

http://www.website.com/ar /شاهدى-عروض-الأزياء-العالمية-بعيون-عربية/موضة/剧情/ 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/story/75

我需要知道Facebook做了什么, WN。 我知道的另外一件事是这个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/story/75

所以我需要知道面子书使用或什么Facebook正在做访问以下网址,当我们分享网址

www.website.com/ar/شاهدى-عروض-الأزياء-العالمية-بعيون-عربية/موضة/故事,编码/ 75

回答

4
http://www.website.com/ar/شاهدى-عروض-الأزياء-العالمية-بعيون-عربية/موضة/story/75 

这不是URI(或URL)。这是一个IRI。不幸的是,很多软件不直接支持IRI(包括SO,就像你只能链接地址的第一部分一样)。

所以如果你想让链接在任何地方都能工作,你必须把它写成一个普通的URI,使用UTF-8-URL编码的路径名,如最后一个例子(%D8%B4 ...)。无论HTML文档中的链接是纯URI,浏览器通常都会将地址栏中的编码链接显示为一个很好的IRI。

%c3%98%c2%b4 ...就是当你采用UTF-8编码的字节并将它们当作ISO-8859-1编码的字节(然后再用UTF-8-URL编码)一个破碎的“双UTF-8”)。你如何将IRI加入Facebook?无论是你使用的接口,你发送UTF-8,但期望ISO-8859-1,或者它只是Facebook的一个普通的旧bug。无论哪种方式,您现在都必须使用URI版本。