hibernate插入中文到mysql数据库乱码

1. 更改mysql数据库字符集

linux下修改/etc/my.cnf

windows下修改my.ini

[mysqld]
#default-character-set = utf8

character_set_server=utf8      #这个是我添加的
init_connect=‘SET NAMES utf8‘
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
 
[mysqld_safe]
default-character-set = utf8    #这个是我添加的
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
[client]
default-character-set = utf8      #这个是我添加的
 
[mysql.server]
default-character-set = utf8      #这个是我添加的
 
[mysql]
default-character-set = utf8      #这个是我添加的

mysql> show variables like ‘%char%‘;

| character_set_client      | utf8                      |
 
| character_set_connection  | utf8                      |
 
| character_set_database    | utf8                      |
 
| character_set_filesystem  | binary                    |
 
| character_set_results      | utf8                      |
 
| character_set_server      | utf8                      |
 
| character_set_system    | utf8                      |
 
| character_sets_dir        | /usr/share/mysql/charsets/    |

2 数据源url连接配置

在xml配置文件中配置数据库url时,要使用&的转义字符也就是&amp

<property name="url" value="jdbc:mysql://localhost:3306/customer?useUnicode=true&amp;characterEncoding=UTF8"</property>

3.Tomcat

tomcat默认的字符集是ISO-8829-1,修改成utf-8

修改server.xml文件

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

utf8 和 UTF-8 在使用中的区别

总结:【只有在MySQL中可以使用“utf-8”的别名“utf8”,但是在其他地方一律使用大写“UTF-8”。】

时间: 2024-08-07 03:57:10

hibernate插入中文到mysql数据库乱码的相关文章

解决mysql数据库乱码问题

MySQL的SQL语言是用于访问数据库的最常用标准化语言.MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小.速 度快.总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库.那么对于mysql数据库乱码问题该如何处理呢? 专职优化.域名注册.网站空间.美国虚拟主机.服务器托管.vps主机.服务器租用的中国信息港来为你详细介绍! 备注:如果您是买空间网的客户,您可以直接咨询技术支持为您提供针对特定问题最简单的解决方案 以下内容转自网络: 1.

mysql 数据库乱码问题

mysql 数据库乱码问题,按如下顺序检查,一步一步排除出错位置. 最好全部编码都使用UTF8编码. 网页页面编码方式使用UTF8: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 然后检查连接MYSQL数据库时设为UTF8: mysql_query("set character set 'UTF8'",$con);mysql_query(&q

SQL Server插入中文数据后出现乱码

原文:SQL Server插入中文数据后出现乱码 今天在做项目的过程中遇到如标题的问题,情况如下图: 数据库使用的是SQL Server2012版本,创建表的脚本如下: CREATE TABLE [dbo].[Type](  [TypeId] INT NOT NULL PRIMARY KEY,     [TypeName] NVARCHAR(50)NOT NULL,     [Description] NVARCHAR(255) NULL,     [CategoryId] INT NOT NU

MySql数据库乱码解决方法

MySql数据库乱码解决方法 解决乱码问题一个原则:存取系统使用一致的编码规则. 多使用mysql的原生命令行,这样才能做更多的事情. ? 第一步: 确认应用系统需要使用的编码 java的默认编码是跟随系统的,有的说是默认UNICode,在java中可以使用 String defaultCharsetName=Charset.defaultCharset().displayName();显示编码. 第二步: 确认并设置MySql的数据库的编码 1. 显示编码,简单的方法命令是:status; 或

java插入数据至mysql数据库报错:check the manual that coresponds to your mysql server version for the right syntax to use near &#39;condition)values...解决方案

MySQL5.X(本地数据库) 使用java向表中插入数据时,每次数据库更新,pstm.executeUpdate();就会跳到IO报错,提示原因是sql语法有问题,如题可见 当测试插入数据不含condition字段时,插入成功,尝试更名为conDition时,仍报错 解决方案: 更改condition为conDi,原因可能时因为condition为数据库或java关键字不能使用,更名后不再受影响,插入成功. java插入数据至mysql数据库报错:check the manual that c

Linux环境下MySQL数据库用SQL语句插入中文显示 “问号或者乱码 ” 问题解决!

问题: 在普通用户权限下执行 mysql -u root -p进入mysql数据库,中间步骤省略,插入数据:insert into 库名(属性)values('汉字'); 会出现如下提示:  Query OK, 1 row affected, 1 warning (0.00 sec)    表明出现错误,没有插入成功,然后执行select * from 表名   就会出现如下的问题:显示的表中出现乱码或者问号. 如图: 解决方案: 首先重新打开一个终端窗口(方便操作),进入root用户模式 执行

Hibernate连接MySQL数据库乱码相关问题

1.查看MySQL字符编码 >show variables like 'character%'; #执行编码显示 其中character_set_client,character_set_results,character_set_connection三个运行变量是造成乱码的关键 2.修改MySQL编码格式为UTF8 编辑my.ini,(注意:不是utf-8,也要注意大小写) 找到客户端配置[client] 在下面添加 ### 默认字符集为utf8 default-character-set=u

客户端发送中文消息到服务端Mysql数据库乱码的问题

这些天的实训写了一个班级发布消息到云端的小android应用,其中注册用户信息的时候需要将中文消息上传到云端的mysql数据库中,如果直接传中文字符串过去在数据库中会出现?的乱码,在加了如下代码之后问题得到了解决 其中tag是要传递的字符串:

论mysql数据库乱码

1.问题确认:数据库乱码归集为字符集问题; 查每个字符集的校队规则:show character set; (观察例 utf8  utf8_general_ci ) 创建gbk字符集数据库: create database name_gbk DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; 创建:utf8字符集数据库: create database name_ntf8 CHARACTER SET utf8 COLLATE utf8_genera