UrlEncoding给出不同的结果

时间:2013-08-19 16:49:19

标签: php url-encoding

JavaScript函数:

var s="ì";
var e=encodeURIComponent(s);
document.write(e);

预期结果:%C3%AC 结果:%C3%AC

PHP函数:

$s = "ì";
echo $e = urlencode($s);

预期结果:%C3%AC 结果:%EC

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的PHP文件可能采用单字节编码进行编码,例如ISO-8859-1。当您键入非ASCII字符时,它将使用该编码的字符表示。您期望得到UTF-8(多字节)结果。

要获得该结果,请将PHP文件编码为UTF-8文件。通常,您的IDE将有一个选项;通常在“另存为...”对话框中。

或者,如果您不能或不想更改文件的编码,则可以执行

echo $e = urlencode(utf8_encode($s));