java程序存入数据库中文乱码解决方案
一、问题描述
背景:代码迁移,ssm框架在插入数据到mysql数据库时,中文乱码。代码中的编码配置没有问题,因为该项目代码以前使用过,没有问题。现在换了数据库,数据库配置也做了修改,统一使用utf8,但还是乱码,数据库配置存在不知明的原因,但是有别的解决方法。
解决方法:在数据库的配置的url后加useUnicode=true&characterEncoding=UTF-8参数。
private static String URL = "jdbc:mysql://localhost:3306/ki?useUnicode=true&characterEncoding=UTF-8";
private static String USER = "root";
private static String PASSWORD = "root";
用xml配置时,&要使用它的转义符:
<!-- 数据源 -->
<bean id="ds" class="org.apache.commons.dbcp.BasicDataSource">
<property name="url" value="jdbc:mysql://localhost:3306/ki?useUnicode=true&characterEncoding=UTF-8"/>
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
xml的字符转义符:
添加的作用是:指定字符的编码、解码格式。
例如:mysql数据库用的是gbk编码,而项目中用的是utf-8编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下两个方面:
存数据时:
数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。
取数据时:
在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。
java程序存入数据库中文乱码解决方案的更多相关文章
- 解决Java保存到数据库中文乱码问题,加useUnicode=true&characterEncoding=UTF-8
Java保存到数据库中文乱码, 解决方法如下: 我们在连接MySQL数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8,但是问什 ...
- 关于JAVA插入Mysql数据库中文乱码问题解决方案
方案一:在创建client的时候,指定使用的编码方式 具体如下: conn = DriverManager.getConnection("jdbc:mysql://localhost:33 ...
- mysql 存入数据库 中文乱码
1.要保证数据库.表.字段都是utf-8的数据类型.排序一直即可. 数据库的在数据库属性里面改: 表的在设计表里面改: 字段的也是在设计表里面改: 常用命令: -- 检查字符集类型show varia ...
- mysql 通过echo的方式写入数据库 中文乱码解决方案
echo "set names utf8;insert into xxx (path, sn, time, flag) values ('$wav', '$sn', '$secs', 'op ...
- java连接mysql数据库中文乱码问题
private static final String URL="jdbc:mysql://localhost:3306/ziye?useUnicode=true&character ...
- Java中文乱码解决方案
Java中文乱码解决方案 1.中文乱码解决方案,确保每个文件的默认编码是UTF-8 加入 URIEncoding="UTF-8" 代码中的设置 1>在se ...
- JSP中pageEncoding和charset区别,中文乱码解决方案(转载)
转载自:JSP中pageEncoding和charset区别,中文乱码解决方案 JSP指令标签中<%@ page contentType="text/html;charset=GB23 ...
- 基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案
基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案 两个月前做C++课设的时候,电脑编译器编译结果出现了中文乱码,寻求了百度和大神们,都没有解决这个问题,百度上一堆解释是对编译器 ...
- JS传值中文乱码解决方案
JS传值中文乱码解决方案 一.相关知识 1,Java相关类: (1)java.net.URLDecoder类 HTML格式解码的实用工具类,有一个静态方法:public static String ...
随机推荐
- DFA算法实现关键字查找(正则原理入门)
前言:一直都这样认为“正则表达式是一个很有用的技能”,从一开始的磕磕绊绊的使用和摸索,到后来可以得心应手,这个过程离不来平时的不断学习和思考
- SVN+Axure版本管理&协同设计(一)
1. SVN介绍 2.安装部署 环境介绍:Ubuntu16
- mysql 开发进阶篇系列 9 锁问题 (Innodb 行锁实现方式)
一.概述 Innodb 行锁是通过给索引上的索引项加锁来实现的.这一点与(oracle,sql server)不同后者是通过在数据块中对相应的数据行加锁.这意味着只有通过索引条件检索数据,innodb ...
- 微信小程序使用wxParse解析html
最近项目上遇到在微信小程序里需要显示新闻内容,新闻内容是通过接口读取的服务器中的富文本内容,是html格式的,小程序默认是不支持html格式的内容显示的,那我们需要显示html内容的时候,就可以通过w ...
- 解决:MVC对象转json包含\r \n
项目中对象转json字符串时,如下:JsonSerializerSettings jsetting = new JsonSerializerSettings(); jsetting.DefaultVa ...
- leetcode — permutations-ii
import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Source : https://o ...
- 五分钟轻松了解Hbase面向列的存储
说明:从严格的列式存储的定义来看,Hbase并不属于列式存储,有人称它为面向列的存储,请各位看官注意这一点. 行式存储 传统的数据库是关系型的,且是按行来存储的.如下图: 其中只有张三把一行数据填满了 ...
- solr查询工作原理深入内幕
1.什么是Lucene? 作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用, ...
- Git命令速查
Alias 下面的只是例子,想改成什么跟随自己的意愿即可. git config --global alias.st status //status 缩写成 st git config --globa ...
- Perl文件名通配和文件查找
在shell中使用*来对文件名进行通配扩展,在Perl中也同样支持文件名通配.而且perl中的glob通配方式和shell的通配方式完全一致,实际上perl的glob函数就是直接调用csh来通配的(如 ...