CI中的URL中是不是不可以出现中文?
如题,比如这句:http://localhost/index.php/user/create/李连杰,换句话说,就是说user类中create这个方法的参数是不允许中文的对吧?偶是新手。 是的,这里最好不要用中文,但,是可以修改的。
在 config.php 中有个配置选项:/*
|--------------------------------------------------------------------------
| Allowed URL Characters
|--------------------------------------------------------------------------
|
| This lets you specify which characters are permitted within your URLs.
| When someone tries to submit a URL with disallowed characters they will
| get a warning message.
|
| As a security measure you are STRONGLY encouraged to restrict URLs to
| as few characters as possible.By default only these are allowed: a-z 0-9~%.:_-
|
| Leave blank to allow all characters -- but only if you are insane.
|
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
*/
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_-';大概意思就是说,允许出现在URL中的字符,这是个正则表达式的一部分,怎样允许出现中文,大家给帮帮忙吧!呵呵~~~ 明白了。没看到config的这项。
中文改怎么出现呢?我记得中文编码在"HEX"里好像有个范围的,什么0x.....什么的~:lol 应该是吧,你去 google 搜索一下识别中文的正则表达式,应该很好找。
不过还是不建议你在URL使用中文,因为你可能会遇到编码问题,Windows IIS 可能会给你的中文自动转成 GB2312,你会很郁闷。 可以使者把中文经过 url_encode一下。。然后传入时在decode。。。 原帖由 Hex 于 2007-11-30 07:03 发表 http://codeigniter.org.cn/forums/images/common/back.gif
应该是吧,你去 google 搜索一下识别中文的正则表达式,应该很好找。
不过还是不建议你在URL使用中文,因为你可能会遇到编码问题,Windows IIS 可能会给你的中文自动转成 GB2312,你会很郁闷。 ...
恩,其实在正常开发的话我觉得应该是不会用到中文参数的,这个只是在测试,呵呵,另外我向来都用apache,iis很少用。谢谢
原帖由 syd 于 2007-11-30 09:57 发表 http://codeigniter.org.cn/forums/images/common/back.gif
可以使者把中文经过 url_encode一下。。然后传入时在decode。。。。 ...
恩,你说的这个办法很对,我之前也是用这个办法解决的,但是有个巧合是正好我在传这个参数的时候是在js里传的,我想ajax的话很有可能会用到。
如果用程序urlencode的话是没问题的~ $config['permitted_uri_chars'] = 'a-z 0-9~%.:_-';
换成
$config['permitted_uri_chars'] = '.*';
什么字符都通过,呵呵:lol 在正则的 [] 中也能用 .* 吗? 中文好啊
等咱打下全世界,那个url都这么写:“网址冒号斜杠斜杠万维网点域名点公司” :L 很好很强大
页:
[1]
2