JSP,servlet和数据库之间传值出现乱码的问题

摘要:
字符集=UTF-8”);在页面上设置字符集字符集<Charset=UTF-8“pageEncoding=”UTF-8”%>metahttp equiv=“内容类型”Content=“text/html;charset=utf-8”>设置字符编码筛选器</过滤器映射>

近期困扰我非常久的一个问题最终攻克了,为他我头疼了好几天,问题是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%';


我执行之后的结果是
 JSP,servlet和数据库之间传值出现乱码的问题第1张
大神说当中我这两个须要更改,
 JSP,servlet和数据库之间传值出现乱码的问题第2张
然后我就找到安装文件夹下的my.ini文件吧把以下几句话给成例如以下格式:
default-character-set=utf8
default-storage-engine=INNODB



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

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



免责声明:文章转载自《JSP,servlet和数据库之间传值出现乱码的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇生产者与消费者模式(理解)开发者分享 | 从零开始开发一个即时通讯项目下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql5.7 column cannot be null

背景 独立测试环境安装了数据库,但安装的版本是mysql 5.7的版本,而研发用的是mysql5.6的版本,在执行某个数据库操作的提示,提示column “xxxx”cannot be null 问题解决 最快速的方法就是直接询问研发,告知是DB问题,因为mysql从哪个版本开始默认的时间这块有改动,需要修改配置;MySQL升级后,在执行sql语句 ins...

XNA框架基础——从头开始

从头开始 您已经准备好了一切,现在就让我们开始编码吧!本节您将在XNA Studio模板的帮助下创建一个简单的游戏项目,然后在Update和Draw方法中添加少量代码以实现一些小功能。在下一小节学习了SpriteBatch类之后,您将创建您的第一个游戏。 您的第一个项目 打开XNA Game Studio Express,在菜单栏中选择“文件→新建项目...

JS拖动滑块验证

使用这种验证方法的目的:证明当前的用户不是机器人~防止恶意操作。 实现思路:   1、获取silde滑块(获取元素)   2、为元素注册事件———鼠标点击事件(onmousedown)鼠标点击之后获得当前鼠标的X坐标。   3、如何获取到鼠标的x坐标——使用clientX事件(当事件被触发时,鼠标指针的水平坐标)。   4、鼠标移动事件发生后根据从最开始点...

可信计算基础实验一——开发环境的搭建(kali)

可信计算基础实验一——开发环境的搭建(kali) TPM仿真环境结构 上图即为TPM仿真环境软件包依赖关系图,按由下往上按部就班的进行安装。 安装步骤 1.m4与gmp的安装 依照软件包依赖关系图,我们看到安装gmp前,我们要先安装m4。 m4简介:m4 是一种宏处理器,它扫描用户输入的文本并将其输出,期间如果遇到宏就将其展开后输出。m4 可用作编译器的...

oracle 报错 :ORA-04052、 ORA-00604、 ORA-03106、 ORA-02063

最近发现一个很奇怪的问题:创建了一个DB_LINK连接另一个Oracle数据库。select * from tablename@dblinkname;单句执行没问题,但是把这句SQL写到存储过程内:create or replace procedure prc_testisbegininsert into testselect * from tablena...

WebSocket-java实现

一、所需jar 二、创建websocket.jsp(注意此页面链接,需要链接到自己的服务) 1 <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> 2 <% 3 String path = request.getContextPath...