Servlet相关的几种中文乱码问题
Servlet相关的几种中文乱码问题
浏览器调用jsp,html等页面中文显示乱码
使得文件本身以utf-8字符集编辑保存
让浏览器浏览器以utf-8字符集解析
在浏览器中右键选择编码格式为utf-8;
通过<meta>标签模拟response头,起到告诉浏览器用utf-8的编码解析
具体操作:
//html
<meta name="content-type" content="text/html; charset=UTF-8">或<meta charset="utf-8">
//jsp
<%@ pageEncoding="utf-8"%>
//xml
<?xml encoding="UTF-8"?>
通过浏览器调用servlet,页面显示乱码。
response乱码问题
控制浏览器用UTF-8进行解码
response.setContentType("text/html;charset=UTF-8");
//或者
response.setHeader("content-type","text/html;charset=utf-8");
//ps:setHeader是HttpServletResponse的方法。如果想在拦截器Filter中设置字符编码,则无此方法,因为Filter的doFilter方法的参数类型是ServletResponse
将response对象中的数据以UTF-8解码后的字节流发向浏览器
response.setCharacterEncoding("UTF-8");
request乱码问题
post请求乱码
resquest.setCharacterEncoding("页面使用的字符集"); //只对post请求有效
GET请求(URL方式传递参数乱码)
原因:
//问题本质是get方式传递的参数内容默认编码方式问ISO8859-1,而且使用request.setCharacterEncoding("utf-8")也无法解决问题。
解决方法一:
修改tomcat服务器的配置文件,即修改tomcat目录下的conf/server.xml文件。
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="200000"
redirecPort="8443" <!-URIEncoding="utf-8"-> /> //注释为需要添加的部分
解决方法二:
在servlet中手动转换字符集并转换(不建议使用)。
//对应Servlet中:
String name = request.getParameter("name");
String value = null;
value = new String(name.getBytes("ISO-8859-1"),"页面使用的字符集");
调用数据库出现乱码
修改数据库字符集或表字符集
#sql语句
show create table 表名; #查询表的信息(主要看字符集)
/*例:Table Create Table
Dog CREATE TABLE `dog` (
`dog_id` int(11) NOT NULL AUTO_INCREMENT,
......
PRIMARY KEY (`dog_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8*/
#修改完数据库字符集,需要重启mysql数据库
ALTER DATABASE 数据库名 CHARACTER SET utf8;
#修改表字符集
ALTER TABLE 表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Servlet相关的几种中文乱码问题的更多相关文章
- 在Servlet中出现一个输出中文乱码的问题(已经解)。
在Servlet中出现一个输出中文乱码的问题,已经解. @Override public void doPost(HttpServletRequest reqeust, HttpServletResp ...
- 解决servlet中get方式中中文乱码问题(二):装饰者模式使用
注意,这里是针对Tomcat容器中get方式提交的servlet中获得参数,参数中有中文的时候乱码的问题: 之前我已经讲过,Tomcat8.0及以上URIEncoding都是utf-8的默认编码,不会 ...
- Web(Jsp+ Servlet)开发中如何解决中文乱码问题
1.中文乱码的成因 编码的字符集和解码的字符集不一致. 2.web开发过程中可能出现的乱码的位置及解决方案 ①request乱码 在向服务器传递数据时,所传递的中文有可能出现乱码. post请求(协议 ...
- servlet request、response的中文乱码问题
一.request 1.get请求 get请求的参数是在请求行中的,浏览器使用utf-8进行编码,数据的编码一般为UTF-8,而url请求行的默认编码为ISO-8859-1,一般来说有以下方式可以解决 ...
- Servlet学习之Tomcat控制台中文乱码问题
Tomcat控制台中文乱码问题 在更新了IDEA2020.1版本后,可以安装官方的简体中文插件,方便我们日常使用,但是更新后再运行Tomcat时,控制台的输出日志出现中文乱码问题,接下来告诉大家如何修 ...
- Servlet相关的几种乱码
1. 页面中文显示乱码 原因: response中的内容会先输入到response缓冲区,然后再输入到传给浏览器,所以要将缓冲区和浏览器的编码都设置成utf-8 1)未使用jsp,而是在servlet ...
- servlet的xx方式传值中文乱码
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOEx ...
- Servlet,JSP 中的中文乱码问题以及解决方案
问题描述: 在Servlet,JSP 传递数据中,英文无影响,而中文有时候就会出现乱码. 解决方案: 相同的编码: 同一个项目中的每个文件应当设置和保存相同的编码方式,如: html中 <met ...
- 完美解决在Servlet中出现一个输出中文乱码的问题
@Override public void doPost(HttpServletRequest reqeust, HttpServletResponse response) throws Servle ...
随机推荐
- Jackson 框架的高阶应用
Jackson 是当前用的比较广泛的,用来序列化和反序列化 json 的 Java 的开源框架.Jackson 社 区相对比较活跃,更新速度也比较快, 从 Github 中的统计来看,Jackson ...
- vs2013/2015中scanf函数类似于error C4996: 'scanf': This function or variable may be unsafe的安全检查错误
在使用vs2015时,遇到了scnaf函数安全性的问题,程序不能正常运行,错误如下: error C4996: 'scanf': This function or variable may be un ...
- Java String 和 new String()的区别
Java String 和 new String()的区别 本文转自:http://www.cnblogs.com/heima-jieqi/archive/2012/04/10/2440086.htm ...
- mac toad下建表问题
mac toad下创建表,表名会自动多一个双引号,如:tb_test => "tb_test",这个应该是mac系统智能引号问题导致的,目前还没找到解决办法,只能手动用sql ...
- iOS 7 present/dismiss转场动画
前言 iOS 7以后提供了自定义转场动画的功能,我们可以通过遵守协议完成自定义转场动画.本篇文章讲解如何实现自定义present.dismiss自定义动画. 效果图 本篇文章实现的动画切换效果图如下: ...
- FLASH OTP
OTP 软件加密运用参考 为了防止软件被他人盗用,spansion flash给每个芯片植入了代表身份的unique ID,增加了OTP扇区,目前我们可以运用这两个特性,来实现软件的加密保护.软件加密 ...
- 【基于libRTMP的流媒体直播之 AAC、H264 推送】
这段时间在捣腾基于 RTMP 协议的流媒体直播框架,其间参考了众多博主的文章,剩下一些细节问题自行琢磨也算摸索出个门道,现将自己认为比较恼人的 AAC 音频帧的推送和解析.H264 码流的推送和解析以 ...
- 1.jeesite环境搭建
安装部署 1. 运行Maven目录下的settings.bat文件,用来设置maven仓库路径,并按提示操作(设置PATH系统变量.配置Eclipse). 2. 执行jeesite/bin/eclip ...
- SVN常用命令说明(转载)
转自:http://www.blogjava.net/jasmine214--love/archive/2011/01/12/342839.html /** * 转载请注明作者longdick htt ...
- 开源基于asio的网络通信框架asio2,支持TCP,UDP,HTTP,RPC,SSL,跨平台,支持可靠UDP,支持TCP自动拆包,TCP数据报模式等
开源基于asio的网络通信框架asio2,支持TCP,UDP,HTTP,RPC,SSL,跨平台,支持可靠UDP,支持TCP自动拆包,TCP数据报模式等 C++开发网络通信程序时用asio是个不错的选择 ...