1

我正在开发一个支持多语言的带有 codeigniter 的网站。当用户使用他们的母语搜索时,当我对结果进行分页时,我得到了第一个结果,该字符未解码。

这是用于分页的url。

在此处输入图像描述

当我打印 uri 段时,我得到了 %E0%B4%AE

我尝试了 url 编码和 url 解码,那次我得到了一个不同的字符,比如 à´®

谁能告诉我如何解码这种类型的字符集?

4

1 回答 1

3

虽然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 个字节。

于 2012-11-18T06:43:06.977 回答