精华帖 (3) :: 良好帖 (5) :: 新手帖 (0) :: 隐藏帖 (4)
|
|
---|---|
作者 | 正文 |
发表时间:2012-03-06
最后修改:2012-03-06
1、文件的乱码 1.1、项目文本文件默认编码: 【右击项目】->【Properties】->【Resource】->【Text file encoding】 1.2、文件默认编码:默认使用项目的默认编码 【右击文件】->【Properties】->【Resource】->【Text file encoding】 1.3、 JSP 文件编码:由于 JSP 要翻译为 Servlet 1.3.1、JSP文件编码: 【右击文件】->【Properties】->【Resource】->【Text file encoding】 1.3.2、JSP翻译为Servlet时的编码: <%@ page language="java" pageEncoding="utf-8"%> 中文乱码:在以后学习过程中全部采用UTF-8 2、浏览器和服务器间传输数据的乱码 2.1、 浏览器端 编码,一般由服务器端告诉浏览器如何解码数据: 2.1.1、Servlet response.setContentType("text/html; charset=UTF-8"); 或者 response.setCharacterEncoding(“UTF-8”); 2.1.2、JSP <%@ page language="java" contentType="text/html; charset=utf-8" %> 2.1.3、通用 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 注:浏览器编码可以由我们手工修改,但最后不要这样,一般让浏览器自动选择即可。 中文乱码:在以后学习过程中全部采用UTF-8 2、浏览器和服务器间传输数据的乱码 2.2、 服务器端 编码,将客户端传过来的数据进行解码: 浏览器默认使用ISO-8859-1进行编码数据,然后将数据传输到服务器,因此我们默认只需要将浏览器发送过来的数据转换为我们需要的编码即可。 2.2.1、最简单方式: String username = request.getParameter(“username”); username = new String(username.getBytes("ISO-8859-1“), "UTF-8"); 2.2.2、比较好的解决方案 // 必须 在获取参数之前,调用如下方法先解码 request.setCharacterEncoding(“UTF-8”); String username = request.getParameter(“username”); 2.4、比较通用方案:在一个Filter中更改所有请求的编码方式: 1、在src中添加filter来设置编码格式是中文,filter类可以在tomcat的包里面:apache-tomcat-6.0.16.zip\apache-tomcat-6.0.16\webapps\examples\WEB-INF\classes\filters下面,SetCharacterEncodingFilter.java文件 2 、在 web.xml 中配置 filter ,具体配置如下页: <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>filters.SetCharacterEncodingFilter</filter-class> <init-param><param-name>encoding</param-name> <param-value>utf-8</param-value></init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 2.5、 GET提交方式中文乱码解决 通过修改request.setCharacterEncoding(“UTF-8”);只能解决POST提交方式的请求编码,对GET无效。 1 、最简单解决方案: 该解决方案不再需要任何额外配置(如filter) TOMCAT默认ISO-8859-1 因此可以设置默认编码为UTF-8解决,在conf\server.xml文件中设置如下 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding=”UTF-8”/> 2 、在 tomcat4 之后,可以通过如下配置来解决中文乱码,但必须配置 filter 在conf\server.xml文件中设置如下 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" useBodyEncodingForURI=“true” /> 然后request.setCharacterEncoding(“UTF-8”)也可解决GET乱码 转贴自【http://sishuok.com/forum/posts/preList/306/428.html】 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-03-06
嘿嘿,发技术贴了。哥们~!
|
|
返回顶楼 | |
发表时间:2012-03-06
rockethj8 写道 嘿嘿,发技术贴了。哥们~!
我一直发技术贴啊 |
|
返回顶楼 | |
发表时间:2012-03-06
jinnianshilongnian 写道 rockethj8 写道 嘿嘿,发技术贴了。哥们~!
我一直发技术贴啊 好吧,昨天真被扣了90分了我。关了几次小黑屋。祝你好运~! |
|
返回顶楼 | |
发表时间:2012-03-06
rockethj8 写道 jinnianshilongnian 写道 rockethj8 写道 嘿嘿,发技术贴了。哥们~!
我一直发技术贴啊 好吧,昨天真被扣了90分了我。关了几次小黑屋。祝你好运~! 我发的还是比较靠谱的,看俺博客就知道了,哈哈哈。 |
|
返回顶楼 | |
发表时间:2012-03-06
楼主最进很活跃啊
|
|
返回顶楼 | |
发表时间:2012-03-06
内容很有用~感谢楼主
|
|
返回顶楼 | |
发表时间:2012-03-06
guozilovehe 写道 楼主最进很活跃啊
是吧!!哈哈 |
|
返回顶楼 | |
发表时间:2012-03-06
这两天一直在关注楼主的spring的连载
|
|
返回顶楼 | |
发表时间:2012-03-06
guozilovehe 写道 这两天一直在关注楼主的spring的连载
谢谢 |
|
返回顶楼 | |