在做开发的过程中,难免会遇到了传参数出现字符乱码的问题。
使用过很多中解决方法,最后选择了下面这种……
前台:
var url = "myurl?method=mymethod&myparams"+encodeURI(encodeURI(myparam));
注意这里必须经过两次编码。
后台:
String myparams= URLDecoder.decode(request.getParameter("myparams"), "UTF-8");
使用java.net包中得URLDecoder类,转化为UTF-8,解决乱码问题。
encodeURI调用两次的原因:
因为Java中的request.getParameter(String)方法会进行一次URI的解码过程,调用时内置的解码过程会导致乱码出现。而URI编码两次后,request.getParameter(String)函数得到的是原信息URI编码一次的内容。接着用java.net.URLDecoder.decode(String str,String codename)方法,将已经编码的URI 转换成原文。
确实很好用的解决乱码问题的方法
欢迎大家讨论!!!!!!
使用过很多中解决方法,最后选择了下面这种……
前台:
var url = "myurl?method=mymethod&myparams"+encodeURI(encodeURI(myparam));
注意这里必须经过两次编码。
后台:
String myparams= URLDecoder.decode(request.getParameter("myparams"), "UTF-8");
使用java.net包中得URLDecoder类,转化为UTF-8,解决乱码问题。
encodeURI调用两次的原因:
因为Java中的request.getParameter(String)方法会进行一次URI的解码过程,调用时内置的解码过程会导致乱码出现。而URI编码两次后,request.getParameter(String)函数得到的是原信息URI编码一次的内容。接着用java.net.URLDecoder.decode(String str,String codename)方法,将已经编码的URI 转换成原文。
确实很好用的解决乱码问题的方法
欢迎大家讨论!!!!!!