php中文url轉碼例項

2021-09-01 22:54:34 字數 1822 閱讀 5527

php [url=編碼[/url],可以使用 urlencode() 或者 rawurlencode(),二者的區別是前者把空格編碼為 '+',而後者把空格編碼為 '%20',注意,在編碼時應該只對部分url編碼,否則url中的冒號和反斜槓也會被轉義。

詳細解釋:

string urlencode ( string str)

例子 1. urlencode() 示例

<?php

echo '';

?>

例子 2. urlencode() 與 htmlentities() 示例

<?php

echo '';

?>

string urlencode ( string str)

返回字串,此字串中除了 -_. 之外的所有非字母數字字元都將被替換成百分號(%)後跟兩位十六進製制數。這是在 rfc 1738 中描述的編碼,是為了保護原義字元以免其被解釋為特殊的 url 定界符,同時保護 url 格式以免其被傳輸**(像一些郵件系統)使用字元轉換時弄亂。

[url=漢字轉碼unicode編碼函式[/url]

例如,如果你想在 ftp 的 url 中包含密碼:

例子 1. rawurlencode() 示例 1

<?php

echo '';

?>

或者,如果你想通過 url 的 path_info 構成部分去傳遞資訊:

例子 2. rawurlencode() 示例 2

<?php

echo '';

?>

在解碼時,可以使用相應的 urldecode() 和 rawurldecode(),相應地,rawurldecode() 不會把加號('+')解碼為空格,而 urldecode() 可以。

示例:string urldecode ( string str)

解碼給出的已編碼字串中的任何 %##。返回解碼後的字串。

例子 1. urldecode() example

<?php

$a = explode('&', $query_string);

$i = 0;

while ($i < count($a))

?>

string rawurldecode ( string str)

返回字串,此字串中百分號(%)後跟兩位十六進製制數的序列都將被替換成原義字元。

例子 1. rawurldecode() 示例

<?php

echo rawurldecode('foo%20bar%40baz'); // foo bar@baz

?>

但是,有一點需要注意的地方是,urldecode() 和 rawurldecode() 解碼出的字串是 utf-8格式的編碼,如果url中含有中文的話,而頁面設定又不是 utf-8 的話,則要把解碼出的字串進行轉換,才能正常顯示!

還有乙個問題,就是所獲得的 url 不是 %%nn n= 的格式,而是 %unnnn n= 的格式,這時候再使用 urldecode() 和 rawurldecode() 是無法正確解碼的,而要用下面這個函式才能正確解碼:

function utf8rawurldecode ($source)

else

} else

}return $decodedstr;

}

Lua中url的中文轉碼

local lua util function lua util.url encode str if str then str string.gsub str,n r n str string.gsub str,w function c return string.format 02x string...

關於URL轉碼問題

最近遇到這麼乙個問題,乙個是查詢亂碼 16進製制字串 另外乙個是url傳參需要對引數轉碼,因為傳的引數是一串中文字元,所以需要處理。前台轉碼倒是方便,一種情景是直接在請求傳送觸發的事件裡面直接轉碼,然後跳到後台裡面,然後在action裡面再轉碼一次。在這個過程中遇到乙個問題如 所示,前台 docum...

PHP的json encode中文被轉碼的問題

在php5.2中做json encode的時候。中文會被unicode編碼,php5.3加入了options引數,5.4以後才加入json unescaped unicode,這個引數,不需要做escape和unicode處理。所以在5.4之前都需要對中文做個處理 5.4裡面的處理 php json...