乱码的形成

***修改tomcat文件中的编码配置***
打开tomcat-->conf-->server.xml配置文件,找到下面配置
      <!-- A HTTP/1.1 Connector on port 8080 -->
      <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding=“UTF-8” />
特别需要注意的是::URIEncoding="UTF-8" ,如果不设置,url上传递的中文就不能被正确解码


***使用编码的编译过程***
从.java->.class过程是:先编写.java文件并按莫种编码方式保存,然后用javac方法编译此文件,注意如.java没按系统默认编码保存则要带encoding参数指明实际编码,否则出错,生成的.class文件存为系统默认编码。
从.jsp->.java->.class:先存为某种编码的.jsp文件,然后tomcat根据pageEncoding读取并转化为servlet,然后同上面.java->.class过程。

***使用eclipse控制编码***
如果.jsp文件有<%@ page language="java" pageEncoding="UTF-8"%>,则eclipse会自动存为UTF-8方式,不管eclipse的encoding是什么,这也是eclipse的聪明之处

***jsp中编码的设置***
<%@ page language="java" pageEncoding="UTF-8"%>   //文件保存编码
<%@ page contentType="text/html;charset=iso8859-1"%>   //文件解析编码
<html>
<head>
<title>test</title>
</head>
<body>
我是个好人
</body>
</html>
会产生乱码,因为保存为UTF-8的文件被解码为iso8859-1,这样 如有中文肯定出乱码。

***servlet中的编码格式***
request.setCharacterEncoding("UTF-8")是把提交内容的字符集设为UTF-8
response.setCharacterEncoding("UTF-8")的作用:
        (把页面中的<%@ page contentType="text/html;charset=iso8859-1"%>换(覆盖)为charset=UTF-8  //作用也就是告诉浏览器这个jsp文件的解码方式为UTF-8)

猜你喜欢

转载自liuzhiqiang19890403.iteye.com/blog/2036830