2012-02-15 4 views
0

私はこのPHPスクリプトを得た:PHPのでurlencode文字セットエンコーディング問題

$str = "ú"; 
echo $str . ' -> ' . urlencode($str) . "\n" ; 

期待される結果:

ú -> %FA 

参考:http://www.w3schools.com/tags/ref_urlencode.asp

の実績

あなたが期待される結果を与える必要があります

urlencode(utf8_decode($str)); 

+0

問題点は何ですか?あなたはその例が嘘だと思う? – hakre

+2

[w3schoolsがあなたに伝えるものを信用しない] – DaveRandom

+0

私はthar urlencode( 'ú')が%C3の代わりに%FAを返すことを期待していますBA – texai

答えて

4

これを試してみてください。

2

úをUTF-8(サンプルコードのエンコードを確認)としてエンコードすると、urlencodeは正しく%C3%BAとしてエンコードされます。

あなたは、PHPコード/ -fileエンコードに関係なく、どのように、あなたの期待される結果を与える
$str = "\xFA"; # ú in LATIN-1 
echo $str . ' -> ' . urlencode($str) . "\n" ; 

ú -> %FA 

Demoを、そのサイト

あなたは多かれ少なかれ、これに言及しましたソースコードを格納するためにUTF-8を使用しています。出力をLATIN-1と表示する場合、このadditional exampleはブラウザにLATIN-1文字セットを通知します。

header('Content-Type: text/html; charset=latin-1'); 
$str = "\xFA"; # ú in LATIN-1 
echo $str . ' -> ' . urlencode($str) . "\n" ;