我的php文件是UTF-8编码的,我正在尝试对我的数据进行编码,以便安全地发送到应用程序中,但一些字符编码不正确。
$text = "Š";
$text = urlencode(utf8_decode($text));
echo $text;
回声%3F,但根据此处找到的w3c but编码参考(http://www.w3schools.com/tags/ref_urlencode.asp),"Š“应转换为%8A。Php自己的引用也没有说明它使用的是什么引用。这可能是编码/解码问题还是其他什么问题?
发布于 2012-12-10 18:35:18
utf8_decode尝试从UTF-8转换为ISO-8859-1,但Š在ISO-8859-1中不存在。因此,您将获得替换字符'?‘(= %3F)。
它以十六进制代码8A的形式存在于CP1252 (可能是其他代码)中。所以:
$text = urlencode(iconv('UTF-8', 'CP1252', $text));
应该给出你所期望的。实际上,您不应该对unicode字符串进行解码。
https://stackoverflow.com/questions/13798645
复制相似问题