0
Javscript功能:URL编码给出不同的结果
var s="ì";
var e=encodeURIComponent(s);
document.write(e);
Exspected结果:%C3%AC 结果:%C3%AC
PHP函数:
$s = "ì";
echo $e = urlencode($s);
Exspected结果: %C3%AC 结果:%EC
我在做什么错?
Javscript功能:URL编码给出不同的结果
var s="ì";
var e=encodeURIComponent(s);
document.write(e);
Exspected结果:%C3%AC 结果:%C3%AC
PHP函数:
$s = "ì";
echo $e = urlencode($s);
Exspected结果: %C3%AC 结果:%EC
我在做什么错?
您的PHP文件可能以单字节编码编码,如ISO-8859-1。当你输入一个非ASCII字符时,它将使用该编码的字符表示。您期待UTF-8(多字节)结果。
要获得该结果,请将您的PHP文件编码为UTF-8文件。通常,您的IDE将有一个选项;通常在“另存为...”对话框中。
或者,如果您不能或不想改变你的文件的编码,你可以做
echo $e = urlencode(utf8_encode($s));
非常感谢!一旦无法将您的答案标记为解决方案。 – Tom
的[规格](http://tools.ietf.org/html/rfc3986)明确地说,拉丁小写字母I WITH GRAVE(U + 00EC)应该被编码为%C3%AC(即,使用UTF-8),而不是%EC(ISO-8859-1)。 – dtb