近期困扰我非常久的一个问题最终攻克了,为他我头疼了好几天,问题是JSP通过servlet向数据库传值,查询显示在页面的时候出现了乱码,原先我数据库中有两行带有中文的数据,查询的时候倒是没有出现乱码。我debug一下。发现JSP和servlet中全部接受中文字符集的变量都没有出现乱码,我去数据库查看。全部加入的中文字符都是问号,问题发现了,我就百度什么原因,有人说改变tomcat字符集。通过更改server.xml文件的字符集来接受中文字符,

方法一:

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

我试了一下还是没能解决这个问题,

方法二:

假设通过servlet向数据库发送数据中包括中文。能够再servlet中设置

request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");

方法三:

 在页面时设置charset的字符集

 <%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

方法四:

 在web.xml文件定义编码,同一时候在SetCharacterEncodingFilter类里定义编码为utf-8

web.xml:

 <filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>com.bzu.servlet.SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

SetCharacterEncodingFilter类:

public void doFilter(ServletRequest request, ServletResponse response,   FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");//处理编码
response.setCharacterEncoding("UTF-8");//处理编码
chain.doFilter(request, response);//让过滤器运行下一个请求
}
public void destroy() { }
public void init(FilterConfig arg0) throws ServletException {
}

方法五:在form表单里定义编码

 accept-charset="utf-8" onsubmit="document.charset='utf-8';"  

这些方法都试过了,还是出现了乱码。无奈,之后在群里请教大神,有一个大神说,在MySQL数据库里执行以下这一句话

  show variables like '%char%';

我执行之后的结果是

 

大神说当中我这两个须要更改,

 

然后我就找到安装文件夹下的my.ini文件吧把以下几句话给成例如以下格式:

default-character-set=utf8
default-storage-engine=INNODB

之后重新启动MySQL。之后果真问题攻克了。

附带群的qq号, 293074111希望群里能帮助一下真正爱学习Java的同学



最新文章

  1. 脱离spring集成cxf(基于nutz框架)
  2. Android中什么时候使用get和post 以及他们的优缺点!!
  3. Python 3.5 连接Mysql数据库(pymysql 方式)
  4. C语言 野指针与空指针
  5. iOS NSMutableURLRequest 上传图片
  6. 7个基于Linux命令行的文件下载和网站浏览工具
  7. 【WinRT】【译】【加工】在 XAML 中制作圆形图片
  8. 使用ajax提交form表单(转)
  9. HBase BulkLoad批量写入数据实战
  10. springboot整合Quartz实现动态配置定时任务
  11. Docker 的插件式设计
  12. 物体检测,Error: maximum box coordinate value is too large
  13. Apache Beam: 下一代的大数据处理标准
  14. 案例学python——案例一:抓图
  15. 洛谷P3567 KUR-Couriers [POI2014] 主席树/莫队
  16. 用dbms_scheduler创建job
  17. ActiveMQ 概述
  18. Spark cache、checkpoint机制笔记
  19. VMware vSphere学习之手动克隆虚拟机
  20. explain 分析 聚合统计语句的性能

热门文章

  1. Selenium2+python自动化35-获取元素属性
  2. html实现带斜线的表头
  3. rotate-function
  4. windows server 2008 远程桌面(授权、普通用户登录)~ .
  5. linux CentOS7 安装spark
  6. Android NFC近场通信03----读写MifareClassic卡
  7. Gh0st整理资料1
  8. fatal error C1853: &#39;&lt;filename&gt;&#39; is not a precompiled header file
  9. 免费的Bootstrap等待页面的应用模板
  10. 翻译记忆软件-塔多思TRADO经典教程_5