CodeIgniter允许在URI中使用特殊字符(如:ä,é,î,ø,ù)吗?

3
如何在CodeIgniter中允许特殊字符(如:ä、é、î、ø、ù)出现在URI中
2个回答

6

在URL中,不能直接使用特殊字符。

RFC 1738包含以下段落:

URL只能使用US-ASCII编码字符集中的可打印图形字符。

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

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

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

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

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

我希望这可以帮到你。

3
你可以在应用程序的配置文件夹中的config.php文件中进行配置: $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; 这将允许特定字符在URI中使用,以便您的应用程序能够处理它们。

我已经尝试过:$config['permitted_uri_chars'] = 'a-z 0-9~%.:_-ø';http://tld/assets/images/profiles/SøkerDeg.jpg但仍然返回以下错误信息:遇到错误您提交的URI包含不允许的字符。 - scoohh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接