PHP urlencode字符集编码问题
我得到了这个php脚本:PHP urlencode字符集编码问题,php,character-encoding,urlencode,Php,Character Encoding,Urlencode,我得到了这个php脚本: $str = "ú"; echo $str . ' -> ' . urlencode($str) . "\n" ; 预期结果: ú -> %FA 参考: 实际结果 ú -> %C3%BA 试试这个: urlencode(utf8_decode($str)); 这会给你预期的结果。试试以下方法: urlencode(utf8_decode($str)); 这应该会给您预期的结果。您将编码为UTF-8(检查示例代码的编码),因此urlencode
$str = "ú";
echo $str . ' -> ' . urlencode($str) . "\n" ;
预期结果:
ú -> %FA
参考:
实际结果
ú -> %C3%BA
试试这个:
urlencode(utf8_decode($str));
这会给你预期的结果。试试以下方法:
urlencode(utf8_decode($str));
这应该会给您预期的结果。您将
编码为UTF-8(检查示例代码的编码),因此urlencode
正确地将其编码为%C3%BA
你或多或少提到了这一点:
$str = "\xFA"; # ú in LATIN-1
echo $str . ' -> ' . urlencode($str) . "\n" ;
无论您如何编码php代码/-文件,它都会为您提供预期的结果:
ú -> %FA
,该站点正在使用UTF-8存储源代码。如果要将输出显示为LATIN-1,这会向浏览器发送LATIN-1字符集的信号:
header('Content-Type: text/html; charset=latin-1');
$str = "\xFA"; # ú in LATIN-1
echo $str . ' -> ' . urlencode($str) . "\n" ;
您将u
编码为UTF-8(检查示例代码的编码),因此urlencode
将其正确编码为%C3%BA
你或多或少提到了这一点:
$str = "\xFA"; # ú in LATIN-1
echo $str . ' -> ' . urlencode($str) . "\n" ;
无论您如何编码php代码/-文件,它都会为您提供预期的结果:
ú -> %FA
,该站点正在使用UTF-8存储源代码。如果要将输出显示为LATIN-1,这会向浏览器发送LATIN-1字符集的信号:
header('Content-Type: text/html; charset=latin-1');
$str = "\xFA"; # ú in LATIN-1
echo $str . ' -> ' . urlencode($str) . "\n" ;
你的问题是什么?你认为这个例子是在撒谎吗?我希望塔尔urlencode('ú')返回%FA而不是%C3%ba该字母在什么字符集?同样,@texai:是的,但不是对每一个ú-计算机都会根据字符集编码的不同而改变任何字符的表示方式。拉丁语-1是(%FA
),而UTF-8不是(%C3%BA
)。您的问题是什么?你认为这个例子是在撒谎吗?我希望塔尔urlencode('ú')返回%FA而不是%C3%ba该字母在什么字符集?同样,@texai:是的,但不是对每一个ú-计算机都会根据字符集编码的不同而改变任何字符的表示方式。拉丁语-1是(%FA
),而UTF-8则不是(%C3%BA
)。