
第一步:在tomcat 的serverxml文件中设置web服务器端口配制中加下面两句: useBodyEncodingForURI="true" URIEncoding="UTF-8" 第二步:JSP页面编码用UTF-8(也可以用“gb2312",第一步与解码要一至)传值时编码一下: 以传递的参数为strPar为例
private static final String inCode = "ISO-8859-1";
private static final String outCode = "utf-8";
/
转换字符串编码ISO-8859-1为gb2312
<div>到数据库时用readString(String inputString)</div>
@param inputString 输入字符串
@return 转换后的字符串
/
public static String readString(String inputString){
try {
byte[] tempByte = inputStringgetBytes(inCode);
inputString = new String(tempByte,outCode);
}
catch (UnsupportedEncodingException ex) {
throw new RuntimeException("Unsupported encoding type");
}finally{
return inputString;
}
}
用我这个吧
一)get提交
1首先说下客户端(浏览器)的form表单用get方法是如何将数据编码后提交给服务器端的吧。
对于get方法来说,都是把数据串联在请求的url后面作为参数,如:>
function js_unescape($str)
{
$ret = '';
$len = strlen($str);
for ($i = 0; $i < $len; $i++)
{
if ($str[$i] == '%' && $str[$i+1] == 'u')
{
$val = hexdec(substr($str, $i+2, 4));
if ($val < 0x7f) $ret = chr($val);
else if($val < 0x800) $ret = chr(0xc0|($val>>6))chr(0x80|($val&0x3f));
else $ret = chr(0xe0|($val>>12))chr(0x80|(($val>>6)&0x3f))chr(0x80|($val&0x3f));
$i += 5;
}
else if ($str[$i] == '%')
{
$ret = urldecode(substr($str, $i, 3));
$i += 2;
}
else $ret = $str[$i];
}
return $ret;
}
上面这个函数是接收ajax传过来的参数是调用
使用方法:js_unescape($_GET['通过ajax传过来的参数']);
function phpescape($str)
{
$sublen=strlen($str);
$retrunString="";
for ($i=0;$i<$sublen;$i++)
{
if(ord($str[$i])>=127)
{
$tmpString=bin2hex(iconv("utf-8","ucs-2",substr($str,$i,2)));
//$tmpString=substr($tmpString,2,2)substr($tmpString,0,2);linux下打开这项
$retrunString="%u"$tmpString;
$i++;
} else {
$retrunString="%"dechex(ord($str[$i]));
}
}
return $retrunString;
}
上面这个函数是返回给调用层进行的编码 *** 作
使用方法:phpescape('你所要输出的内容');
以上就是关于怎么改tomcat配置文件解决get传值乱码问题全部的内容,包括:怎么改tomcat配置文件解决get传值乱码问题、.net与JAVA间GET请求中文乱码问题、get和post的区别并讲解到URLENCODE和乱码问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)