URL传递汉字
两次编码urlencode(urlencode(汉字))
不知道还有其他好的解决方法没
本帖最后由 yuzhigang5460 于 2011-8-3 10:39 编辑
google一下吧。
encodeURIComponent 方法返回一个已编码的 URI。如果您将编码结果传递给 decodeURIComponent,那么将返回初始的字符串。因为 encodeURIComponent 方法对所有的字符编码,请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结果被作为请求发送到 web 服务器时将是无效的。如果字符串中包含不止一个 URI 组件,请使用 encodeURI 方法进行编码。
本帖最后由 kunwsk 于 2011-8-3 17:46 编辑
php就是用urlencode或 rawurlencodeURL 进行编码
如果方法一:
$str =urlencode('我是');
echo "<a href=\"act/m/$str\">show</a>";
发现url跳转还是 http://localhost/index.php/act/m/我是
CI 就会拦截报url非法错误
方法二:
$str =urlencode(urlencode('我是'));
echo "<a href=\"act/m/$str\">show</a>";
发现url跳转变了 http://localhost/index.php/act/m/%25E6%2588%2591%25E6%2598%25AF
CI不会拦截。
第二次符合了$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
如果你用echo $str;
会发现其实第一次他已经变了 :%E6%88%91%E6%98%AF
但是为什么放到<a>标签中的 href中他就被还原了。
用base64_encode()下啊.
页:
[1]