`

JavaEE项目中的utf-8编码

 
阅读更多

1、pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码。 
2、contentType="text/html;charset=UTF-8"的作用是指定对服务器响应进行重新编码的编码。 
3、request.setCharacterEncoding("UTF-8")的作用是设置对客户端请求进行重新编码的编码。
4、response.setCharacterEncoding("UTF-8")的作用是指定对服务器响应进行重新编码的编码。 
response.setCharacterEncoding("UTF-8")的作用是指定对服务器响应进行重新编码的编码。同时,浏览器也是根据这个参数来对其接收到的数据进行重新编码(或者称为解码)。所以在无论你在JSP中设置response.setCharacterEncoding ("UTF-8")或者response.setCharacterEncoding("GBK"),浏览器均能正确显示中文(前提是你发送到浏览器的数据编码是正确的,比如正确设置了pageEncoding参数等)。

 

对于发送数据,服务器按照response.setCharacterEncoding—contentType—pageEncoding的优先顺序,对要发送的数据进行编码。 

对于接收数据,要分三种情况。一种是浏览器直接用URL提交的数据,另外两种是用表单的GET和POST方式提交的数据。

 

对于表单中POST方式提交的数据,只要在接收数据的JSP中正确request.setCharacterEncoding参数,即将对客户端请求进行重新编码的编码设置成浏览器编码,就可以保证得到的参数编码正确。有写读者可能会问,那如何得到浏览器编码呢?上面我们提过了,在默认请情况下,浏览器编码就是你在响应该请求的JSP页面中response.setCharacterEncoding设置的值。所以对于POST表单提交的数据,在获得数据的JSP页面中request.setCharacterEncoding要和生成提交该表单的JSP页面的 response.setCharacterEncoding设置成相同的值。 

对于URL提交的数据和表单中GET方式提交的数据,在接收数据的JSP中设置request.setCharacterEncoding参数是不行的,因为在Tomcat5.0中,默认情况下使用ISO- 8859-1对URL提交的数据和表单中GET方式提交的数据进行重新编码(解码),而不使用该参数对URL提交的数据和表单中GET方式提交的数据进行重新编码(解码)。要解决该问题,应该在Tomcat的配置文件的Connector标签中设置useBodyEncodingForURI或者 URIEncoding属性,其中useBodyEncodingForURI参数表示是否用request.setCharacterEncoding 参数对URL提交的数据和表单中GET方式提交的数据进行重新编码,在默认情况下,该参数为false(Tomcat4.0中该参数默认为true); URIEncoding参数指定对所有GET方式请求(包括URL提交的数据和表单中GET方式提交的数据)进行统一的重新编码(解码)的编码。 URIEncoding和useBodyEncodingForURI区别是,URIEncoding是对所有GET方式的请求的数据进行统一的重新编码(解码),而useBodyEncodingForURI则是根据响应该请求的页面的request.setCharacterEncoding参数对数据进行的重新编码(解码),不同的页面可以有不同的重新编码(解码)的编码。所以对于URL提交的数据和表单中GET方式提交的数据,可以修改 URIEncoding参数为浏览器编码或者修改useBodyEncodingForURI为true,并且在获得数据的JSP页面中 request.setCharacterEncoding参数设置成浏览器编码。

分享到:
评论

相关推荐

    JavaEE项目批量转换编码为UTF-8

    NULL 博文链接:https://tian-wang.iteye.com/blog/1004127

    Java代码借助JavaEE中的定时器定时关闭计算机

    本工程为Java工程,该工程用于演示如何借助JavaEE中的定时器功能实现定时关闭计算机的功能。 本工程编码方式:UTF-8 欢迎下载

    网上文件管理系统(Struts)(Java EE项目案例)

    (2)项目是否为utf-8格式(同时看看的源代码文件中,中文是否乱码)。 (3)JSP页面是否是utf-8 格式。 (4)在web.xml 是否配置了编码过滤器。 (5)数据源配置的url(?useUnicode=true&characterEncoding=UTF-8),...

    JAVAEE实验一.zip

    在做 Web 开发前必须配置开发环境编码及 JSP 页面编码并保持一致,在本课程实习过程中所有编码都设置为 UTF-8。 配置开发环境的编码 点击菜单“window”->“preferences”在弹出对话框的左侧栏选择“General”->...

    客户资源管理系统(javaEE实训)

    所用数据库为sql server 2008,程序运行环境为myeclipse,将以使用者,将jsp的编码方式改为utf-8,用到图片上传的组件jspsmart.jar,会存在路径不能显示的状况,建议使用IE浏览器(解决办法:打开浏览器-工具-...

    DOS命令使用方法(超全).

    DOS命令使用方法(超全). xmlns="http://java.sun.com/xml/ns/javaee" ... xsi:schemaLocation="http://java.sun.com/xml/ns/javaee ... <param-value>UTF-8</param-value>

    javaee tomcat绿色包

    可以再server.xml中修改端口号,编码方式,连接超时时间等信息, <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8087" protocol="HTTP/1.1" redirectPort="8449"/>

    maven的优缺点 项目

    <?xml version="1.0" encoding="UTF-8"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...

    java客户关系管理系统完整源码(springboot).zip

    java客户关系管理系统完整源码(springboot) - 创建数据库springboot_demo,数据库编码为UTF-8 - 执行docs/sql/init.sql文件,初始化表 - 执行docs/sql/data.sql文件,初始化数据 - 运行Application类

    尚硅谷_JavaWeb1

    第 1 章 HTML 基础1. 准备1.2 解压设置默认编码为 utf-8JavaEE 课程系列更多 Java –大数据 –前端 –python 人工智能资料下

    尚硅谷 Java 技术之 JavaWeb1

    第 1 章 HTML 基础1. 准备1.2 解压设置默认编码为 utf-8JavaEE 课程系列更多 Java –大数据 –前端 –python 人工智能资料下

    live-project:一个向社会限量供应的口罩应用的实践

    现场项目 一个向社会限量供应的口罩应用的实践... 静态字符串编码=“ UTF-8”; 静态字符串loginName =“ test1”; 静态字符串密码=“ xY36iZcTehxPrt23”; 静态{尝试{Class.forName(“ com.mysql.jdbc.Driver”); } c

    zebraCMS(斑马内容管理系统)1.0安装包

    zebraCMS(斑马内容管理系统)是一款java开发的国产中文CMS,由Juuluu开发,于2012-5-8日作为全新产品进行发布。zebraCMS目标是为华文地区java程序员提供一款易于定制、开发、嵌入的轻便型内容管理系统。zebraCMS主要...

    zebraCMS(斑马内容管理系统)源码

    zebraCMS(斑马内容管理系统)是一款java开发的国产中文CMS,由Juuluu开发,于2012-5-8日作为全新产品进行发布。zebraCMS目标是为华文地区java程序员提供一款易于定制、开发、嵌入的轻便型内容管理系统。zebraCMS主要...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    现有的 Java EE 应用 假定我们已经拥有了一个管理雇员信息的...可以通过 ActionScript 编码创建该对象,也可以直接在 MXML 中定义一个 RemoteObject 对象,并列出其所有的方法: 清单 13. 定义 flexServiceRO ...

    Java学习日志(二十一): 缓冲流,转换流

    JavaEE学习日志持续更新—-> 必看!JavaEE学习路线(文章总汇) Java学习日志(二十一)缓冲流原理字节缓冲输出流:BufferedOutputStream字节缓冲输入流:BufferedInputStream字符缓冲输出流:BufferedWriter字符...

    瑞志企业建站系统源码ASP版 v1.0

    1.按照Web标准开发,依赖CSS进行排版,使用UTF-8编码 2.前台模块:文章、商品、图片、留言本、查询 3.前台模块基于类来实现,方便进行修改 4.支持无限分类以及分类排序、移动、合并 5.支持中英文,并可以无刷新切换 ...

Global site tag (gtag.js) - Google Analytics