今天一同事碰到用jsp:param传递中文,始终是乱码。
看了下配置都没错,查看编译的JSP文件看到以下内容:
org.apache.jasper.runtime.JspRuntimeLibrary.URLEncode("你好", request.getCharacterEncoding()), out, false);
调试发现 request.getCharacterEncoding()返回为null,这样中文内容就作为默认编码(
ISO8859-1)传递,自然就乱了.
解决方法一是在页面头部做request.setCharacterEncoding,指定传递的参数编码。
还有个方法就是通用过滤器,或者自己写个,当然各个MVC框架都有,用框架的话配置一下就OK了。
PS:调试JSP最好看编译后的JAVA文件,本机调试时就出现文件编码问题绕个了圈。