2012-03-28 6 views
5

現在、私はユニコード文字Khmer Unicodeを含むURLをエンコードするソリューションを探しています。私は、PHP組み込み関数でurlencodeを(使用して試した)、それが結果得られます。たとえば :http://www.example.com/?kwd=Mac+Book+Pro +នៅប្រទេសយើងURLをエンコードする方法PHPでUnicode文字が含まれています

私はGoogleの検索でテストしてみたが、それは結果: https://www.google.com.kh/#hl=en&sclient=psy-ab&q=Mac+Book+Pro+%E1%9E%93%E1%9F%85%E1%9E%94%E1%9F%92%E1%9E%9A%E1%9E%91%E1%9F%81%E1%9E%9F%E1%9E%99%E1%9E%BE%E1%9E%84&oq=Mac+Book+Pro+%E1%9E%93%E1%9F%85%E1%9E%94%E1%9F%92%E1%9E%9A%E1%9E%91%E1%9F%81%E1%9E%9F%E1%9E%99%E1%9E%BE%E1%9E%84

方法それをするには?ここの誰かが私を助けることを願っています。 ありがとうございます! UTF-8の場合

答えて

9

あなたが使用することができます。

urlencode(utf8_encode($string)); //for encoding 

utf8_decode(urldecode($string)); //for decoding 

をUTF-16の場合は、あなたが(http://php.netで "でurlencode" のメモから)この機能を使用することができます。

function utf16_urlencode ($str) { 
    # convert characters > 255 into HTML entities 
    $convmap = array(0xFF, 0x2FFFF, 0, 0xFFFF); 
    $str = mb_encode_numericentity($str, $convmap, "UTF-8"); 

    # escape HTML entities, so they are not urlencoded 
    $str = preg_replace('/&#([0-9a-fA-F]{2,5});/i', 'mark\\1mark', $str); 
    $str = urlencode($str); 

    # now convert escaped entities into unicode url syntax 
    $str = preg_replace('/mark([0-9a-fA-F]{2,5})mark/i', '%u\\1', $str); 
    return $str; 
} 
+0

ありがとうAndy、実際には、私はすでに上記のコードを試した:urlencode(utf8_encode($ string)); //エンコーディングのためにしかし、私の質問に記載されているようにGoogleと同じ結果を生成しません。私は関数を試してみました:utf16_urlencode()しかし、それは私が欲しいものではない製品です。ありがとう – Thavarith

0
function cleanUrl($url) { 
    $res= urlencode(utf8_encode($url)); 
    $res = str_replace("%3A",":",$res); 
    $res = str_replace("%2F","/",$res); 
    return $res; 
} 
関連する問題