CI中RESTURL含有中文怎麼處理(報錯:TheURIyousubmittedhasdisallowedcharacters)

suboysugar發表於2015-01-28

解決方法:

客戶端在傳送GET URL請求的時候,將含有中文的URL編碼即可

比如:

原始:http://localhost/qk/rest/user_album_api/get_user_albums_by_desc/album_desc/風景/page_num/1/page_size/3

URL轉碼 http://tool.oschina.net/encode?type=4

結果是:http://localhost/qk/rest/user_album_api/get_user_albums_by_desc/album_desc/%E9%A3%8E%E6%99%AF/page_num/1/page_size/3

 

在伺服器端,再進行對該編碼的欄位進行解碼即可,用PHP函式string urldecode ( string $str )

 

urldecode

(PHP 4, PHP 5)

urldecode — 解碼已編碼的 URL 字串

說明

string urldecode ( string $str )

解碼給出的已編碼字串中的任何 %##。 加號(`+`)被解碼成一個空格字元。

引數

 

str

要解碼的字串。

返回值

返回解碼後的字串。

範例

 

Example #1 urldecode() 示例

<?php
$query = "my=apples&are=green+and+red";

foreach (explode(`&`, $query) as $chunk) {
    $param = explode("=", $chunk);

    if ($param) {
        printf("Value for parameter "%s" is "%s"<br/>
", urldecode($param[0]), urldecode($param[1]));
    }
}
?>

如何聯絡我:【萬里虎】www.bravetiger.cn
【QQ】3396726884 (諮詢問題100元起,幫助解決問題500元起)
【部落格】http://www.cnblogs.com/kenshinobiy/


相關文章