servlet请求编码与响应编码问题(编码不一致可能会导致乱码)

html中的编码

  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">这里不设置成中文编码无法写中文。

jsp中的编码

  <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

  contentType="text/html; charset=UTF-8"是提供给浏览器的,pageEncoding="UTF-8"是服务器编译jsp时使用的,两者不一致可能会导致页面乱码,有时候可能不会乱码,最好保持一致。

servlet请求编码设置

  请求编码设置分两种,一种是get请求,在doGet方法获取请求参数的默认编码是ISO8859-1,无法获取中文,会出现乱码问题,用request.setCharacterEncoding("utf-8");设置编码不能解决,需要在server.xml的<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>添加URIEncoding="utf-8",这样可以解决url后传中文参数问题。

  另一种是post请求,在doPost方法中用request.setCharacterEncoding("utf-8");就能解决post方法的中文传参乱码问题。

servlet响应编码设置

  响应编码get与post请求一样,用response.setContentType("text/html;charset=UTF-8");就可解决。

时间: 2024-11-09 21:39:55

servlet请求编码与响应编码问题(编码不一致可能会导致乱码)的相关文章

JSP/Servlet编码导致乱码问题

JSP/Servlet编码导致乱码问题 jsp页面的三处编码:       1.<%@ page language="java" pageEncoding="UTF-8"%>         作用:告诉jsp编译器将jsp编译成Servlet时使用的字符编码         例如,你的JSP文件是以GBK为编码保存的 (右击jsp-->Properties --> Text file encoding                设置成与p

从原理上搞定编码(二)-- Web编码

周末宅在家里睡完觉就吃饭,吃完饭接着睡觉,这日子过的实在是没劲啊.明明还有计划中的事情没有做, 为什么就是不想去做呢,这样的生活持续下去,必然会成为一个彻头彻尾的loser.上一篇写的 初识编码 ,这一篇把web编码写出来和菜鸟们分享一下.图片比较多,手机用户不要看,流量没了俺不负责. 一.html页面编码 当浏览器请求一个静态的html页面时,服务器会将html页面的字节流通过网络传输给浏览器.浏览器再将字节流解码成相应的html文本字符,然后将html元素渲染出来.在这个流程中浏览器有一个解

【字符编码】彻底理解字符编码

一.前言 在解决昨天的问题时,又引出了很多新的问题,如为什么要进行编码,这些编码的关系如何,如ASCII,IOS-8859-1,GB2312,GBK,Unicode之间的关系,笔者想要彻底理解字符编码背后的故事,遂进行了探索,具体笔记如下.如园友能读完本篇文章,我相信会解开很多疑惑. 二.字符编码 2.1 为何需要编码? 我们知道,所有的信息最终都表示为一个二进制的字符串,每一个二进制位(bit)有0和1两种状态.当我们需要把字符'A'存入计算机时,应该对应哪种状态呢,存储时,我们可以将字符'A

mysqldump指定编码导出数据后转变编码

第一步,导出旧库mysqldump --default-character-set latin1 -uroot -pXXX --database db >     /tmp/old.sql第二步,转换编码iconv -t utf-8 -f gb2312 -c /tmp/old.sql > /tmp/new.sql第三步,导入新库修改new.sql,增加一条sql语句: "SET NAMES utf8;",保存.mysql -hlocalhost -uroot db <

Linux下将UTF8编码批量转换成GB2312编码的方法

Linux下将UTF8编码批量转换成GB2312编码的方法 在sqlplus中导入UTF8编码的sql脚本就会出现乱码错误,这时就需要将UTF8编码转换成GB2312编码,下面为大家介绍下在Linux下如何进行转换 UTF8编码和GB2312编码是有区别的,在sqlplus中导入UTF8编码的sql脚本就会出现乱码错误,这时就需要将UTF8编码转换 成GB2312编码,可是一个个的转换十分麻烦,下面小编就教你如何在Linux下将UTF8编码批量转换成GB2312编码. 背景 本人在使用oracl

更改python字符编码以便使用UTF-8的编码url路径

url编码分两种, 一种是unicode, 另一种是gb2312, 今天遇到的一个网站是要将字符编码按照gb2312来编码,用来得到一个先填写blanks后再返回页面的数据,废话少说,需要做的就是先查看你的python的编码是啥,默认是ascii, ? 1 2 3 import sys print sys.getdefaultencoding() # 'ascii' 直接附代码吧: ? 1 import urllib as com ? 1 2 3 4 5 6 7 8 9 10 11 12 13

关于编码问题以及不同平台编码及string与编码的关系

说明:这里简要说明一下不同平台的编码不同,c语言中的char *与编码的关系这些问题,及对通常困扰的乱码问题做个总结 一.编码 简单说,就是计算机识别信息的一种格式,ascal.utf-8这些都属于编码,计算机根据这些编码标准,解读出内容.l 二.ANSI.ascll.utf8.unicode等说明 1.  ASCII和Ansi编码 字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为 单字节内码 -- Single-Byte charac

对Servlet请求或响应进行JMockit测试

对Servlet请求及响应进行mock方法, 通过getMockInstance方法对servlet进行打桩,对servlet提供的方法进行mock,替代真正的servlet请求或响应. 参考链接: https://stackoverflow.com/questions/31689729/servlet-junit-test-using-jmockit 代码如下: @RunWith(JMockit.class) public class ImageServletTest3 { @Test pub

你不知道的 字符集和编码(编码字符集与字符集编码)

我的上篇文章,有朋友提出字符集和编码的区别,我在此立文和大家讨论下 常说的字符集和编码区别,其实就是编码字符集和字符集编码的区别,其实,单单如果只是说字符集,没有任何编码的概念的话,那么字符集其实仅仅是一个简单的字符的集合,或者说是一个抽象的字符的集合,包括文字,符号等等,不参与任何存储形式,只是存在这么各种各样标准的字符的集合 如果仅仅是抽象的字符集,我们是无需拿出讨论的,因为没有任何异议,通俗易懂,而常说的字符集指的编码字符集,比如常见的 unicode.ascii.gb2312.gbk等,