我很難理解如何正確轉義和編碼URL以便在站點地圖中提交的規範和指導原則。網站地圖編碼困境
在sitemap.org(實體逸出)的例子,它們具有一個例子URL:
http://www.example.com/ümlat.php&q=name
當UTF-8編碼的結束其中至多爲(根據它們):
http://www.example.com/%C3%BCmlat.php&q=name
然而,當我在PHP上嘗試這個(rawurlencode)時,我最終得到:
http%3A%2F%2Fwww.example.com%2F%C3%BCmlat.php%26q%3Dname
我有點捱打這種通過使用該功能發現PHP.net
$entities = array('%21', '%2A', '%27', '%28', '%29', '%3B', '%3A', '%40',
'%26', '%3D', '%2B', '%24', '%2C', '%2F', '%3F', '%23', '%5B', '%5D');
$replacements = array('!', '*', "'", "(", ")", ";", ":", "@", "&", "=", "+",
"$", ",", "/", "?", "#", "[", "]");
$string = str_replace($entities, $replacements, rawurlencode($string));
,但根據我的人說話(Kohana的BDFM),這種解釋是錯誤的。老實說,我很困惑,我甚至不知道什麼是對的。
什麼是正確的方式來編碼一個URL在站點地圖中使用?
相關RFC 3986
完美,謝謝您的詳細解釋。 – 2010-06-21 19:12:56