在请求地址 url 中往往会传递一些中文字符或其他特殊字符,有时会出现乱码情况,针对中文字符一般做法:进行urlencode($text)转码,但对于特殊字符,比如html字符 SQL注入的相关字符串时处于安全问题考虑,系统一般会过滤掉,而有时需要此类特殊字符,下面为大家讲述一种比较完善的方式。
1、使用base64_encode($text) 编码,服务端 base64_decode($text) 解码,编码后的字符串中含有 "/", "+", "=" 等字符;
2、在用户提交加密串式,把 + 字符换成别的字符,str_replace('+', '_', $content); 之后再服务端处理时再次转换字符串 str_replace('_', '+', $content); 具体代码如下:
function base_encode($str) { $src = array("/","+","="); $dist = array("_a","_b","_c"); $old = base64_encode($str); $new = str_replace($src,$dist,$old); return $new; } function base_decode($str) { $src = array("_a","_b","_c"); $dist = array("/","+","="); $old = str_replace($src,$dist,$str); $new = base64_decode($old); return $new; }