关于servlet向mysql添加数据时中文乱码问题的解决

前言

最近写了一个小Demo,通过 servlet 向 mysql 中添加数据,在 dao 层使用的是 DBUtils 操作的数据库,可是在添加时偏偏出现了中文乱码问题,如下:

添加页面:

点击“添加商品”按钮后,出现中文乱码问题:

问题分析:

 1. 难道是 servlet 在接收时没有设置编码格式?

 2. 难道是数据传输错误?

 3. 难道是浏览器响应时编码问题?

排查:

1.无论是在添加商品的 servlet 中还是在重定向的 servlet 中都设置了编码格式:

//设置编码格式

request.setCharacterEncoding("utf-8");

response.setContentType("text/html;charset=utf-8");

2.在 dao 层进行打印,输入的中文均可以正确打印;

3.如果是浏览器响应时的编码问题,那么后面的“修改 | 删除”字段也会乱码,所以排除。

那到底是什么原因呢?看一下配置文件:

难道是配置文件问题??

解决办法:

在 c3p0.jdbcUrl 路径的 web14 后面添加

  “?useUnicode=true&characterEncoding=utf-8”,

这样,问题就解决了!

看效果:

问题解决!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • jsp和servlet操作mysql中文乱码问题的解决办法

    首先看是从什么地方开始出现的乱码,只要统一编码,就不会出现乱码,下面以uft-8(个人认为最好)为例,详细说明: 1.如果乱码是从jsp页面出现的,jsp头部页面加上:<%@ page language="java" pageEncoding="UTF-8" %>在head标签中加上标签. 2.如果乱码是在servlet中出现的,则有两种方法:一种是在每个servlet中doget和doPost方法头部加上request.setCharacterEnco

  • 关于servlet向mysql添加数据时中文乱码问题的解决

    前言 最近写了一个小Demo,通过 servlet 向 mysql 中添加数据,在 dao 层使用的是 DBUtils 操作的数据库,可是在添加时偏偏出现了中文乱码问题,如下: 添加页面: 点击"添加商品"按钮后,出现中文乱码问题: 问题分析: 1. 难道是 servlet 在接收时没有设置编码格式? 2. 难道是数据传输错误? 3. 难道是浏览器响应时编码问题? 排查: 1.无论是在添加商品的 servlet 中还是在重定向的 servlet 中都设置了编码格式: //设置编码格式

  • PHP+MySQL存储数据常见中文乱码问题小结

    本文实例总结了PHP+MySQL存储数据常见中文乱码问题.分享给大家供大家参考,具体如下: PHP+MySQL出现中文乱码的常见原因: 1. MYSQL数据库的编码是utf8,与PHP网页的编码格式不一致,就会造成MYSQL中的中文乱码. 2. 使用MYSQL中创建表.或者选择字段时设置的类型不是utf8,而网页编码不是utf8,也可能造成MYSQL中文乱码. 3. PHP页面的字符集与数据库的编码不一致. 4. PHP连接MYSQL数据库,操作是设定的语句指定的编码和页面编码,PHP页面编码不

  • .Net Core读取文件时中文乱码问题的解决方法分享

    目录 背景 问题 .NETFramework中的默认属性 .NETCore上的默认属性 解决办法 附.NetCore下读取配置文件中文乱码 总结 背景 今天在使用core web api上传txt文档的时候本来很顺利的,但是一测试发现读取的中文内容是乱码的,很是纳闷. 出于经验,立马把代码的Encoding.Default改成 Encoding.uft8, 发现还是不行.后面索性把上传的文件另存为下,特地选择带有bom的utf8选项. 但是发现还是乱码.郁闷. 问题 于是在本能的百度下,发现方法

  • MySQL插入数据时插入无效列的解决方法

    1.错误描述 com.mysql.jdbc.exception:jdbc4.MySQLSyntaxErrorException:Unknown column 'man' in 'field list' 2.错误原因 数据库表中的字段:sno sname sage ssex 插入数据时: sno sname sage man 本来是想插入ssex这个字段的值为"man",结果将man弄成了ssex字段名 3.解决办法 在插入时,给字符串类型的字段值加上双引号

  • Mysql 导入导出csv 中文乱码问题的解决方法

    导入csv: 复制代码 代码如下: load data infile '/test.csv' into table table_name fields terminated by ','  optionally enclosed by '"' escaped by '"' lines terminated by '\r\n' ignore 1 lines; 导csv: 复制代码 代码如下: SELECT * INTO OUTFILE '/test.csv'  FIELDS TERMIN

  • Ubuntu下Mysql 常用指令及中文乱码问题

    下面给大家介绍mysql 常用指令及中文乱码解决问题 Mysql 系统管理指令 登陆本地 Mysql mysql -u username -p # 回车输入密码 或者 mysql -u username -p passswd; 登陆远程 Mysql mysql -h address -u username -p # 回车输入密码 或者 mysql -h address -u username -p passswd; 修改新密码 mysql> use mysql; mysql> update u

  • 解决python中使用PYQT时中文乱码问题

    如题,解决Python中用PyQt时中文乱码问题的解决方法: 在中文字符串前面加上u,如u'你好,世界',其他网上的方法没有多去探究,Python的版本也会影响解决方法,故这里只推荐这种. (有人说用toLocal8bit函数也可以,我试了下,貌似不行)请看例子: #coding=utf-8 from PyQt4 import QtGui, QtCore s = QtCore.QString(u'你好(hello)世界(world)') t = s.toLocal8Bit() u = unico

  • Navicat中导入mysql大数据时出错解决方法

    Navicat 自己到处的数据,导入时出现无法导入的情况. 最后选择利用MySQL命令导入方式完成数据导入 用到命令 use 快捷方式 \u source 快捷方式 \. 快捷方式可以通过help查询 mysql>\u dataname mysql>\. d:\mysql\dataname.sql 导入时碰到问题及解决方法 导入时中文乱码 解决方法: 在用Navicat导出时用的是UTF8编码,导入时MySQL用自己默认的编码方式导入,中文产生了乱码 用命令查询 mysql>show v

  • 解决idea开发遇到javascript动态添加html元素时中文乱码的问题

    起因 一个几个月前做的小网站,这两天翻出来再看看,发现JavaScript文件中动态添加html元素中的中文乱码了,但是从后台获取的动态中文资源没问题,只有js文件中的静态中文资源,加载到网页中显示乱码 不要在意日期中年份部分的错误 过程 在网上看了很多博客,总结到最后就是要把tomcat.jsp.js.servlet的编码格式统一即可,但是我确定我早就将编码统一为utf-8 包括JavaScript文件的编码格式也多次重写为其他编码格式然后再次重写为utf-8,依然不行 结果 多次尝试无果,我

  • MYSQL插入数据时检查字段值是否重复的方法详解

    项目需求 现有一张u_ps的车位信息表,对应每个小区的车位id ps_id自增长,每个车位又对应车位编号num,车位id由自增长,车位编号可以根据自己小区情况手动添加设置,但是不能重复,车位编号不能重复.这就需要在新增车位信息的时候代码检验新增的该num在u_ps表中是否存在,存在则抛出异常,不存在则做插入操作. 问题关键 不同的小区community_id中车位num可以重复,如果分开设计表设置唯一约束是可行的,但是我们的需求是将所有的小区车位信息放在同一个表中,这就涉及到在插入一条数据的时候

随机推荐