codeigniter允许在uri中使用特殊字符(例如:ä,é,î,ø,ù)

时间:2011-05-04 07:28:25

标签: codeigniter character uri

如何在codeigniter中的uri中允许使用特殊字符(例如:ä,é,î,ø,ù)

2 个答案:

答案 0 :(得分:6)

您不能直接在网址中使用特殊字符。

RFC 1738包含以下段落:

  

网址仅与图片一起编写   US-ASCII的可打印字符   编码字符集。

可以在http://www.columbia.edu/kermit/ascii.html找到US-ASCII字符集中的字符列表。

此外,该集合中的某些字符也会保留用于某些目的,例如“=”和“&”字符。这些字符(以及US-ASCII字符集中未包含的字符)必须使用%符号后跟字符引用进行编码。

您可以使用urlencode()在codeigniter中对这些值进行编码。例如,如果您使用重定向(urlencode(http://test.com/ä))重定向用户,则会将其重定向到http://test.com/%E4这是一个有效的网址。

要将此百分比代码解码回正常字符以便在页面上显示,只需使用urldecode(),例如:

echo 'The character is: ' . urldecode($this->uri->segment(2));

我希望这会有所帮助。

答案 1 :(得分:3)

您可以在config.php文件的application / config文件夹中配置它:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';