如何在codeigniter中的uri中允许使用特殊字符(例如:ä,é,î,ø,ù)
答案 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~%.:_\-';