去你的字符编码问题

碰上字符编码问题真是头大

记录一下修改eclipse文件编码问题的操作吧,以jsp为例:

Window→Preferences→General→Content Types→Text,然后单击Jsp,选定下方的*.properties(locked),接着将最下方的ISO-8859-1改为UTF-8,然后点击旁边的 Update,最后点击OK。

以下内容摘自: https://blog.csdn.net/justloveyou_/article/details/58048879?utm_source=copy 仅为记录,如有不妥,请联系我、

在JSP/Servlet中,主要有以下四种方式可以设置编码,其中前两个只能应用于JSP中,而后两个可以用于 JSP 和 Servlet 中

pageEncoding=”UTF-8”;
contentType=”text/html;charset=UTF-8”;
request.setCharacterEncoding(“UTF-8”) ;
response.setCharacterEncoding(“UTF-8”)。

pageEncoding用在将jsp编译成servlet(.java)阶段。

contenType用在服务器输出到客户端的阶段,如果没有认为设定,则默认是ISO-8859-1的形式。

特别需要注意的是,pageEncoding 的默认值是 “ISO-8859-1”, contentType 的默认值是 “text/html;ISO-8859-1”。


那么在编写代码时需要注意修改编码的位置有哪些:

1、eclipse等编辑工具的编码,eclipse的编码设置前文有记录。

2、项目所在服务器的server.xml文件中,如下所示位置添加以下编码

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" redirectPort="8443"/>

3、jsp页面头部引入以下代码:

 

<%@ page language="java" contentType="text/html;utf-8" import="java.util.*"  pageEncoding="utf-8"%>

4、后台.java文件的requestMapping中添加如下所示代码

@RequestMapping(value = "/index",produces = "text/html;charset=UTF-8")

5、servlet中向前台返回数据时可以使用以下语句。一旦使用了该种方式,即使jsp中指定了具体的contentType,也将失效。

response.setCharacterEncoding(“UTF-8”)

 

根据上文内容,我们得出以下三点:

jsp--->servlet时,主要看pageEncoding

优先级为: pageEncoding=”UTF-8”   >   contentType=”text/html;charset=UTF-8”


后台-->前台也即服务器响应内容时,主要看response.setCharacterEncoding和contentType

优先级为:response.setCharacterEncoding(“UTF-8”)  >  contentType=”text/html;charset=UTF-8”  >  pageEncoding=”UTF-8” 

request.setCharacterEncoding(“UTF-8”) 只用来指定对浏览器发送来的请求数据的解码方式。

 

posted @ 2018-10-12 18:28  朝朝暮暮dx  阅读(150)  评论(0编辑  收藏  举报