开发中我们遇到的中文乱码问题大概有几种:1.jsp页面中文显示乱码,2.提交表单通过request.getPerameter()获取的中文乱码,3. .jsp文件中的中文乱码,4. .java文件中的中文乱码,5.URL传参中文乱码
1.jsp页面中文显示乱码
<%@ page language="java" import="java.util.*"%>
<form action="productSave" method="post">
<p>
<label for="name">名称:</label>
<input type="text" id="name" name="name">
</p>
<p>
<label for="name">价格:</label>
<input type="text" id="price" name="price" >
</p>
</form>
我们可以看到jsp页面中的中文出现乱码。
解决方法!!!!
<%@ page language="java" import="java.util.*" <span style="color:#FF0000;">pageEncoding="UTF-8"</span>%> 把 pageEncoding改为"UTF-8"即可。
2.表单提交出现乱码
当我们使用 request.getParameter("") 这个方法获取表单中提交的中文时,会出现中文乱码 ,产生这种结果的原因是Tomcat中对于Post方法提交的表单默认采用的编码为ISO-8859-1,这种编码格式不支持中文字符。
解决方法<1>转换编码格式
String name = request.getParameter("name");
name = new String(name.getBytes("iso-8859-1"),"utf-8");//汉化http://write.blog.csdn.net/postedit?ref=toolbar&ticket=ST-154573-qJcY3fDqCbfdcATeldCl-passport.csdn.net
<2> 使用过滤器 filter 在web.xml中配置编码格式转换的过滤器即可 (我直接引用了spring框架中的filter,当然也可以自己写个过滤器)
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
需要导入一些spring的jar包,commons-logging-1.1.1.jar spring-beans-3.2.3.jar spring-context-3.2.3.jar pring-core-3.2.3.jar spring-web-3.2.3.jar
3. 在 .jsp文件中出现乱码
解决方法
我们修改一下myeclipse中jsp的默认编码即可
在myeclipse中 找到Window>>Preferences>>MyEclipse>>Files and Editors>>JSP 将Encoding 改为ISO 1064/Unicode(UTF-8)即可
4.在 .java文件中出现乱码
解决方法
在myeclipse中 找到Window>>Preferences>>General>>Editors>>Text Editors>>Spelling 将Encoding选为Other:UTF-8即可
5.URL传参时,中文参数乱码问题叫
在使用get方式 传递参数的时候,如果参数中出现中文,就可能出现乱码
<a href="a.jsp?param='中文'">链接</a><br>
提交的参数为param='??????'解决方法
修改Tomcat的配置文件,找到conf目录下的server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
<span style="color:#FF0000;">URIEncoding="UTF-8"</span> />
添加
<span style="color:#FF0000;">URIEncoding="UTF-8"</span>
即可解决
法