我有这个PHP脚本:
$str = "ú";
echo $str . ' -> ' . urlencode($str) . "\n" ;
预期结果:
ú -> %FA
参考:http://www.w3schools.com/tags/ref_urlencode.asp
实际结果
ú -> %C3%BA
答案 0 :(得分:4)
试试这个:
urlencode(utf8_decode($str));
这应该会给你预期的结果。
答案 1 :(得分:2)
您将ú
编码为UTF-8(请检查示例代码的编码),因此urlencode
会将其正确编码为%C3%BA
。
你或多或少是指这个:
$str = "\xFA"; # ú in LATIN-1
echo $str . ' -> ' . urlencode($str) . "\n" ;
无论你如何对php-code / -file进行编码,它都能为你提供预期的结果:
ú -> %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" ;