2010-09-28 131 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版本。