PHP 的 urldecode() 函數是解碼 URL 編碼字串的有用工具。但是,當字串也是 UTF-8 編碼時,它可能會出現不足。
問題:
考慮以下URL 編碼字串:
Ant%C3%B4nio+Carlos+Jobim
嘗試使用urldecode() 對其進行解碼會產生以下輸出:
Antônio Carlos Jobim
而不是預期的「Antônio Carlos Jobim」。
解:
要解決這個問題,我們還必須解碼 UTF-8 編碼。 PHP 的utf8_decode() 函數用於此目的:
echo utf8_decode(urldecode("Ant%C3%B4nio+Carlos+Jobim"));
這將輸出正確的字符串:
Antônio Carlos Jobim
說明:
URL 編碼涉及以十六進位對應的字元取代某些字元。另一方面,UTF-8 編碼使用多個位元組表示字符,這可能會被誤解為十六進位代碼。透過結合 utf8_decode() 和 urldecode(),我們可以正確解碼以 UTF-8 和 URL 格式編碼的字串。
以上是如何在 PHP 中除了 urldecode() 之外解碼 UTF-8 編碼的 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!