前提:博主所写所有关于乱码问题都会提到一个大前提,请务必保证两端的编码一致,不然乱码就可能产生了。
乱码问题的产生,核心就是,出口和入口的标准不一致引起的,就像你跟老外讲话一样,然而老外不懂中文,所以他那边接收的内容就是无效的,可以理解为乱码。
本文以JSP为例,所以请在JSP的字符集上设置上你的定义,在JSP页面顶部加上:
<%@ page language="java" pageEncoding="UTF-8"%>
下面写一个例子:
定义A页面填写内容,提交后跳转到B页面,在B页面输出内容。
A页面定义form表单
<form action="b.jsp" method="post">
<input class="new_serch" type="text" name="productName"/>
<input type="submit" value="提交" class="new_ser_button" />
</form>
B页面接收值输出
<%
String productName = request.getParameter("productName");
%>
<body>
<%=productName%>
</body>
例子完成。
解决乱码:
1、检查2个页面或多个页面的顶部,pageEncoding 编码是否一致。
2、有的人因为特殊原因,正好这个页面的字符集不能更改,那么在接收参数的时候,手工指定转码。这个时候乱码问题就解决了,但是这只适合个例,如果参数过多怎么办。
String productName = new String(request.getParameter("productName").getBytes("ISO-8859-1"),"GB2312");
总结:
前端展现乱码,主要是未给文件设置编码格式引起的,其他不会仅仅是前端,请参考其他乱码解决说明。