如题,urlencode把地址栏中的中文字符等编码成另一种代码类型,那有没有什么函数可以把英文字符也进行编码,然后到了服务器端可以不用再次进行解码的函数啊?
如果没有,可不可以提供一个自编的函数?需要再次解码的也成,不胜感激~
第1个回答 2010-01-15
这是两个php自带的unicode标准函数,具体用法可以查manuel
第一个参数是你要转换的字符串
第二个参数是encode的类型例如'ISO-8859-2'
第三个参数可以不用.
string unicode_encode ( unicode $input , string $encoding [, int $errmode ] )
unicode unicode_decode ( string $input , string $encoding [, int $errmode ] )
第一个参数是你要转换的字符串
第二个参数是encode的类型例如'ISO-8859-2'
第三个参数可以不用.
string unicode_encode ( unicode $input , string $encoding [, int $errmode ] )
unicode unicode_decode ( string $input , string $encoding [, int $errmode ] )
第2个回答 2010-01-14
编码是可以的,不用再次解码是不行的。
$s = "test";
$s1 = base64_encode($s);
echo $s1."\n";
$s2 = base64_decode($s1);
echo $s2."\n";
结果
dGVzdA==
test本回答被提问者采纳
$s = "test";
$s1 = base64_encode($s);
echo $s1."\n";
$s2 = base64_decode($s1);
echo $s2."\n";
结果
dGVzdA==
test本回答被提问者采纳
第3个回答 2010-01-14
urldecode — 解码已编码的 URL 字符串
<?php
$a = explode('&', $QUERY_STRING);
$i = 0;
while ($i < count($a)) {
$b = split('=', $a[$i]);
echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])),
' is ', htmlspecialchars(urldecode($b[1])), "<br />\n";
$i++;
}
?>
http_build_query
参见 urlencode(),rawurlencode() 和 rawurldecode()。
<?php
$a = explode('&', $QUERY_STRING);
$i = 0;
while ($i < count($a)) {
$b = split('=', $a[$i]);
echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])),
' is ', htmlspecialchars(urldecode($b[1])), "<br />\n";
$i++;
}
?>
http_build_query
参见 urlencode(),rawurlencode() 和 rawurldecode()。