我正在开发一个支持多语言的带有 codeigniter 的网站。当用户使用他们的母语搜索时,当我对结果进行分页时,我得到了第一个结果,该字符未解码。
这是用于分页的url。
当我打印 uri 段时,我得到了 %E0%B4%AE
我尝试了 url 编码和 url 解码,那次我得到了一个不同的字符,比如 à´®
谁能告诉我如何解码这种类型的字符集?
我正在开发一个支持多语言的带有 codeigniter 的网站。当用户使用他们的母语搜索时,当我对结果进行分页时,我得到了第一个结果,该字符未解码。
这是用于分页的url。
当我打印 uri 段时,我得到了 %E0%B4%AE
我尝试了 url 编码和 url 解码,那次我得到了一个不同的字符,比如 à´®
谁能告诉我如何解码这种类型的字符集?
虽然urldecode
这是您应该使用的,但打印错误输出的原因可能是因为输出页面的编码尚未设置为 UTF-8,因此默认为 ISO-8859-1。因此,虽然字符已被 PHP 正确解码,但浏览器会以错误的编码解释字符,从而导致不正确的显示。
要解决此问题,请在任何输出之前charset
在标头中发送 a ,如下所示:Content-type
header('Content-type: <type>; charset=utf-8');
如果您的输出页面是 HTML,您也可以在head
:
<meta charset="utf-8">
如果您选择第二个选项,请务必尽早将标记放置在 中head
,因为浏览器不会扫描超过该声明页面的前 1024 个字节。