2012-01-30 13 views
0

ユニコードを含むURLのエンコード方法は?私はそれをコマンドラインユーティリティに渡したいと思います。最初にエンコードする必要があります。htmlフォームを使用したURLエンコード

<form action="index.php" method="get" > 
<input type="text" name="find" value="عربي" /><br /> 
<input type="submit" value="search" /> 
<form /> 

例: http://localhost/index.php?find =عربي

http://localhost/index.php?find=%DA%D1%C8%ED

+0

http://www.drupalcode.com/api/function/mb_urlencode/contrib-5.x-1.x –

+0

パラメータ値として 'عربي'を使用したいが、それをどのように変換するか分からない'%DA%D1%C8%ED'、そうですか? – Gumbo

+0

なぜPOSTを使用しないのですか? POST要求は正しくエンコードされます。 –

答えて

2
$ cat testme 
#!/usr/local/bin/php 
<?php 

$chars = array("d8", "b9", "d8", "b1", "d8", "a8", "d9", "8a"); 

foreach ($chars as $one) { 
    $string .= sprintf("%c", hexdec($one)); 
} 

print "String: " . $string . "\n"; 
print "Encoded: " . urlencode($string) . "\n"; 

?> 
$ ./testme 
String: عربي 
Encoded: %D8%B9%D8%B1%D8%A8%D9%8A 
$ 
1

%DA%D1%C8%EDなるユニコード配列ではなく、URLは、他の符号化シーケンスを符号化されました。

$url = 'http://localhost/index.php?find=عربي'; 

$url_parts = parse_url($url); 
$query_parts = array(); 
parse_str($url_parts['query'], $query_parts); 
$query = http_build_query(array_map('rawurlencode', $query_parts)); 

$url_parts['query'] = $query; 
$encoded_url = http_build_url($url_parts); 

注:あなたが好きなものを使用することができますUnicode文字で有効なURLを構築したい場合はUnicodeで عربيはURLエンコードした後

%D8%B9%D8%B1%D8%A8%D9%8Aになったはずです。これは、URLのみのquery一部をエンコードします。

関連する問題