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;

最新文章

  1. Android 图片压缩、照片选择、裁剪,上传、一整套图片解决方案
  2. I/O复用模型之select学习
  3. Python与Hack之Zip文件口令破解
  4. oracle中一个字符串包含另一个字符串中的所有字符
  5. jquery的$(document).ready()和onload的加载顺序
  6. C++问题-Qt Visual Studio Add-in
  7. linux查找某个文件中单词出现的次数
  8. KVM virt-manager使用.
  9. 手动添加PopMenu出现的问题
  10. sqlserver判断字符串是否是数字
  11. java 强弱引用
  12. 在vue中优雅地实现简单页面逆传值
  13. semver(Semantic Versioning)
  14. freeswitch配置功能二
  15. 通用Mapper的各个方法描述,参考官方
  16. Yii1使用Gii生成模块实现CURD
  17. Java序列化的作用和反序列化
  18. SpringBoot工程+热部署进行远程调试
  19. c#: UrlDecode()
  20. PID参数调节口诀

热门文章

  1. 解决手淘lib-flexible.js在移动端首次加载页面页面先放大后正常问题
  2. 修改phpmyadmin中的默认超时时间
  3. 强大的DataGrid组件[7]_自定义DataGrid——Silverlight学习笔记[15]
  4. 并不对劲的bzoj4560:p3269:[JLOI2016]字符串覆盖
  5. Windows7下安装golang语言开发环境和revel框架
  6. MemCache在Windows下环境的搭建及启动
  7. python-----从本地摄像头和网络摄像头截取图片
  8. hibernate映射文件set key one-to-many
  9. Swift4 类与继承, 类型转换, 类型判断
  10. bzoj 1112: [POI2008]砖块Klo【对顶堆】