codeigniter 允许 uri 中存在特殊字符(例如:ä、é、î、ø、ù)
如何在 codeigniter 的 uri 中允许特殊字符(例如:ä、é、î、ø、ù)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何在 codeigniter 的 uri 中允许特殊字符(例如:ä、é、î、ø、ù)
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
您不能直接在 URL 中使用特殊字符。
RFC 1738 包含以下段落:
US-ASCII 字符集中的字符列表可以在 http://www .columbia.edu/kermit/ascii.html。
此外,该集中的某些字符也保留用于某些目的,例如“=”和“&”人物。这些字符(以及未包含在 US-ASCII 字符集中的字符)必须使用 % 符号后跟字符引用进行编码。
您可以使用 urlencode() 在 codeigniter 中对这些值进行编码。例如,如果您使用redirect(urlencode(http://test.com/ä))重定向用户,他们将被重定向到http:// test.com/%E4 这是一个有效的 URL。
要将此百分比代码解码回正常字符以在页面上显示,只需使用 urldecode() 例如:
我希望这会有所帮助。
担
You cannot use special characters directly in URL's.
RFC 1738 contains the following paragraph:
A list of characters in the US-ASCII character set can be found at http://www.columbia.edu/kermit/ascii.html.
Additionally, certain characters within that set are also reserved for certain purposes for example the "=" and "&" characters. These characters (and characters not included in the US-ASCII character set) must be encoded with the use of a % sign followed by the character reference.
You can encode these values within codeigniter using urlencode(). For example if you redirected a user using redirect(urlencode(http://test.com/ä)), they would be redirected to http://test.com/%E4 which is a valid URL.
To decode this percent code back into a normal character for display on your page, simply use urldecode() for example:
I hope this helps.
Dan
您可以在 application/config 文件夹的 config.php 文件中进行配置:
$config['permissed_uri_chars'] = 'az 0-9~%.:_\-';
You can configure this in your application/config folder, in the config.php file:
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';