-
2022-02-16 22:12:17
一、乱码的原因:
1、 client客户端的编码不是utf8
2、server端的编码不是utf8
3、database数据库的编码不是utf8
4、数据库的表的编码不是utf8
5、表中的列字段编码不是utf8
主要的原因在于前三个偏多。
二、查看数据库的编码方式
mysql>show variables like ‘character%’;
此截图是解决之后的,查看哪个不是和上面一样。三、解决的办法有俩种:
1、对/etc/mysql/my.cnf 配置文件进行修改[mysqld] character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8
2、由mysql -uroot -p命令进入mysql,输入以下设置
SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8;
针对在客户端输入:数据库、表、列字段设置
alter database <数据库名> character set utf8;
alter table <表名> character set utf8;
alter table <表名> modify <字段名> character set utf8;
注意:设置之后记得重启,输入命令:service mysql restart
四、本人在项目遇到乱码问题是以下方法解决的
出现问题的形式:项目的服务器向数据库插入数据时,表中的数据中文为乱码。
解决方法:对封装的数据库操作类中,建立连接数据库时,设置字符集utf8//建立连接后, 自动调用设置字符集语句,_dbConf._charset = utf8 if(!_dbConf._charset.empty()) { if (mysql_options(_pstMql, MYSQL_SET_CHARSET_NAME, _dbConf._charset.c_str())) { throw MysqlHelper_Exception(string("MysqlHelper::connect: mysql_options MYSQL_SET_CHARSET_NAME ") + _dbConf._charset + ":" + string(mysql_error(_pstMql))); } }
完美解决向数据库插入数据时中文乱码问题。
更多相关内容 -
解决 docker mysql 中文乱码问题
2021-01-20 12:50:06使用 docker 启动 mysql 容器可能会出现中文乱码的情况,这里记录如何制作支持中文的 mysql 镜像 docker版本:18.06 mysql 版本:5.7 1. 创建 my.cnf 文件 [client] default-character-set=utf8 [mysql] default-... -
Mysql中文乱码问题的最佳解决方法
2020-12-15 03:07:20一般来说,造成MySQL出现中文乱码的因素主要有下列几点: 1.server本身字符集设定的问题,例如还停留在latin1 2.table的语系设定问题(包含character与collation) 3.客户端程序(例如php)的连线语系设定问题 对此,... -
python查询mysql中文乱码问题
2021-01-20 04:59:59python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码 — 可能情况: 1.mysql数据库各项没有设置编码,默认为’latin’ 2.使用MySQL.connect的时候没有设置默认编码 3.没有设置python的编码,python2.7默认为’... -
Mysql插入中文乱码问题解决
2018-05-30 13:46:20个人总结了遇到使用Mysql数据库插入中文时产生乱码问题的解决方法 -
MySQL乱码的几种原因
2020-12-14 21:15:32MySQL之所以会乱码,无非是以下几种原因: 1、存进数据库之前乱码 2、在存进数据库过程中乱码 3、存进数据库后乱码 想知道在哪里出现乱码很简单,在后台打印一下知道了。 既然知道问题出在哪里,那... -
mysql导入导出数据中文乱码解决方法小结
2020-12-15 09:32:01解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上–default-character-set=utf8, 例如下面的代码: 代码如下:mysqldump -uroot -p –default-character-set=... -
windows环境下Mysql中文乱码问题解决方法
2020-09-10 20:38:52在搭建Mysql环境的时候遇到了中文乱码问题,下面与大家分享下具体的解决方法,感兴趣的朋友可以参考下哈,希望对大家有所帮助 -
解决springmvc+mybatis+mysql中文乱码问题
2020-09-03 09:40:13主要介绍了解决java中springmvc+mybatis+mysql中文乱码问题的相关资料,需要的朋友可以参考下 -
mysql中文乱码解决方式
2021-01-28 00:35:25却突然出现了中文乱码问题。尝试了多种方案,最终解决乱码问题,总结一下解决方式,给遇到同样问题的人一点參考。中文乱码的原因1.安装mysqlserver的时候编码集设定有问题2.创建数据库的时候编码集设定有问题3.创建...近期项目使用到mysql。却突然出现了中文乱码问题。尝试了多种方案,最终解决乱码问题,总结一下解决方式,给遇到同样问题的人一点參考。
中文乱码的原因
1.安装mysqlserver的时候编码集设定有问题
2.创建数据库的时候编码集设定有问题
3.创建表的时候编码集设定有问题
4.client的编码集设定有问题
能够通过命令查看编码集:
show variables like "%char%";
经常使用编码集
1.java中的经常使用编码UTF-8;GBK;GB2312;ISO-8859-1;
2.相应mysql数据库中的编码utf8;gbk;gb2312;latin1
建议使用utf8格式,utf8能够兼容世界上全部字符
mysql编码集设置命令
注意:假设不是通过my.ini配置文件设置的内容,仅仅在当前状态下有效,当重新启动数据库服务后失效。所以假设想要不出现乱码仅仅有改动my.ini文件,数据库编码能够在创建数据库时候指定UTF8
mysql设置编码命令
SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;
SET collation_connection = utf8_bin;
SET collation_database = utf8_bin;
SET collation_server = utf8_bin;
设定mysqlserver编码
设定mysqlserver的编码。须要又一次安装mysql服务,步骤例如以下:
1.打开命令提示符(管理员)。假设不以管理员身份执行可能会出现错误
2.进入mysql安装文件夹下的bin文件夹
3.关闭服务
net stop mysql
4.卸载
mysqld -remove
5.改动mysql的配置文件。在mysql安装文件夹下找到my.ini文件
改动配置文件,在配置文件里增加
character-set-server=utf8
贴出我的配置文件
[mysqld]
#设置字符集
character-set-server=utf8
#这里把路径改改为你的mysql安装文件夹
basedir=D:\develeper\mysql5.6
datadir=D:\develeper\mysql5.6\data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
6.安装
mysqld -install
7.启动服务
net start mysql
创建时指定字符集
1.创建数据库时设定字符集
create database testdb default character set utf8;#建立数据库
2.创建表时设定字符集
use testdb;
create table student(
id char(50) primary key,
sname varchar(100) not null,
age int
)engine=innodb default charset=utf8;
3、client字符集的设定。通过连接字符串来设定。
jdbc:mysql://localhost:3306/testdb?
characterEncoding=utf8
-
python操作mysql中文显示乱码的解决方法
2020-09-10 12:12:08主要介绍了python操作mysql中文显示乱码的解决方法,是Python数据库程序设计中经常会遇到的问题,非常具有实用价值,需要的朋友可以参考下 -
JDBC连接mysql处理中文时乱码解决办法详解
2020-12-15 23:23:36JDBC连接mysql处理中文时乱码解决办法详解 近日,整合的项目需要跟一个比较老版本的mysql服务器连接,使用navicat查看,发现此mysql服务器貌似没有设置默认编码,而且从操作此mysql的部分php文件看,应该是使用的gb... -
常见php与mysql中文乱码问题解决办法
2020-12-15 06:48:42乱码问题1:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显示MySQL数据时所有汉字都变成了?号。 症状:用PHPmyAdmin输入汉字正常,但当PHP网页显示MySQL数据时汉字就变成了?号,并且有多少个汉字就有多少... -
命令行mysql 中文乱码解决
2022-04-01 10:38:21现象 在IDEA中查询,中文显示正常。IDEA中的jdbc连接字符串是: jdbc:mysql://172.16.184.13:3306/ry-vue?useUnicode=true&...但是在命令行中查询则出现中文乱码问题: select user_name,nick_name,sex fr现象
在IDEA中查询,中文显示正常。IDEA中的jdbc连接字符串是:
jdbc:mysql://172.16.184.13:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
但是在命令行中查询则出现中文乱码问题:
select user_name,nick_name,sex from sys_user;
原因分析
查询编码格式
show variables like'%char%';
数据库设置的是utf8格式的,但是命令行mysql查的是latin1格式的,所以导致乱码问题的出现。解决办法
更改results编码格式
set character_set_results=utf8;
这样问题就解决了。
上面一行就能解决查询乱码的问题了。
为了保险起见,可以把其他的也设置成utf8set character_set_client=utf8; set character_set_connection=utf8; set character_set_database=utf8; set character_set_results=utf8;
设置完成以后编辑格式就是如下:
然后我执行了update语句,中文的字段更新也正常了。永久解决
如果每次都手动执行
set character_set_results=utf8;
解决乱码问题,太麻烦了。关键是有时会忘记,有一次导数据忘记了,导致插入了好多中文乱码的数据,很麻烦。解决办法很简单:
在你的电脑(客户端)以下配置文件中~/.my.cnf
加入如下内容:[mysql] default-character-set=utf8
这样下次运行就不用手动设置编码格式了,直接可以使用。
参考
《MySQL命令行查询乱码解决方法》
https://www.cnblogs.com/aksir/p/7070493.html -
解决mysql客户端中文显示乱码
2022-03-05 22:50:48在修改了mysql默认的字符集后,查询某个表的信息,发现出现了中文乱码: 上网查询后得知,之所以会显示乱码,就是因为mysql客户端输出窗口显示中文时使用的字符编码不对造成的,可以使用如下的命令查看输出窗口...在修改了mysql默认的字符集后,查询某个表的信息,发现出现了中文乱码:
上网查询后得知,之所以会显示乱码,就是因为mysql客户端输出窗口显示中文时使用的字符编码不对造成的,可以使用如下的命令查看输出窗口使用的字符编码:
show variables like 'char%';
可以看到,现在是使用utf8字符编码来显示中文数据的,但是因为操作系统是中文操作系统,默认使用的字符集是GB2312,所以需要把输出窗口使用的字符编码改成gb2312才能够正常显示中文。使用如下的命令设置输出窗口使用的字符编码:
set character_set_results=gb2312;
命令执行完成之后就可以把输出窗口使用的字符编码改成gb2312,如下图所示:
此时我们再次执行查询,表中的中文数据就可以正常显示了,如下图所示:
最后附上mysql的常用命令:
1、启动mysql服务器:net start mysql; 关闭mysql服务器:net stop mysql;
2、创建数据库:create database, 显示所有的数据库名:show databases,
修改数据库编码格式:alter database,查看数据库中所有的表:show tables,
查看指定表的创建结构:show create table,3、将表中记录清空: delete from 表名;
删库和删表;drop database 库名; drop table 表名;
显示表中的记录: select * from 表名;
数据传入命令 load data local infile "文件名" into table 表名;4、查看mysql数据库:status
连接mysql数据库:mysql -hlocalhost -uroot -p -
解决Mysql中文乱码问题(多方面考虑,彻底解决乱码问题)
2022-01-10 18:31:29今天在做java前后端分离项目的时候遇到了读取mysql中文乱码问题,首先在项目中的要求是通过springboot和mybatis-plus构建访问数据库,后面在通过浏览器访问固定地址读取查询表内容的时候(select * from hospital_... -
php读取mysql中文数据出现乱码的解决方法
2021-01-20 00:43:17解决方法:创建数据库的时候,MySQL 字符集选择’UTF8’,MySQL 连接校对选择utf8_general_ci,这样创建的数据库用来存储中文肯定没有问题,否则,你的中文首先在MySQL中就是乱码,更不要期望它会给你在PHP页面中... -
浅谈mysql的中文乱码问题
2020-12-15 13:49:24首先,我用的mysql版本号是5.5.17的,最近遇到的问题是在eclipse中通过jdbc往数据库写中文数据的时候,在数据库中显示的是??即乱码,为解决这个问题,搞了一个晚上(当然熄灯后就就寝了(__) )外加早上这会儿,搞... -
数据库 MySQL中文乱码解决办法总结
2021-01-21 15:13:59MySQL中文乱码解决办法 前言: MySQL是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。 1、中文乱码 1.1... -
php插入到mysql数据库中文乱码问题解决
2020-12-15 00:12:57重装了系统重新安装了PHP的运行环境,也没注意太多,想写点东西复习复习……当我用INSERT INTO想数据表里添加数据的时候,发现数据只要是中文的都是以乱码显示的,于是我在网页中规定了语言为gbk发现还是不行,在... -
mysql命令行中文乱码或无法显示的解决方法.md
2020-04-23 14:55:58自己在使用mysql时出现了中文乱码的现象,然后到网上找各种方法,结果都没有说清楚,最后弄下来浪费了时间,所以在自己找到好的方法解决了之后,就在这里分享一下,希望对大家有帮助/ -
JSP MySQL插入数据时出现中文乱码问题的解决方法
2020-10-21 04:08:45主要介绍了JSP MySQL插入数据时出现中文乱码问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
解决JSP到MySQL数据库中文乱码问题
2020-12-14 23:50:44遇到了这个问题, 按照一定的顺序解决了, 来这里总结一下, 希望能帮助大家. 咱们从前台到后台的顺序来解决. 1. JSP 这里需要设置一下JSP页面的统一编码格式: 打开Eclipse-window->preferences.... -
Mysql中文乱码问题的解决办法
2022-02-23 11:24:00在进行数据库连接的时候,发现代码插入不了中文,在此将中文乱码问题做一个简单的总结。 一:将IDEA中的文件设置为UTF-8编码方式 将File => Settings => Editor => File Encodings => Project Encoding... -
让MySql彻底支持中文_解决mysql数据库乱码
2021-01-24 20:42:45让MySql彻底支持中文_解决mysql数据库乱码 -
PHP连接MySQL查询结果中文显示乱码解决方法
2020-10-26 19:27:19MySQL和Apache两个系统的编码(字符集)问题让我费劲脑筋,吃尽苦头。网上对这些问题的解决比较零散,比较片面,大部分是提供解决方法,却不说为什么。于是我将这几天收获总结一下,避免后来者再走弯路 -
Windows服务器MySQL中文乱码的解决方法
2020-12-15 08:34:34我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。 如果你也遇到了这个问题,咱先不谈... -
MySQL中文乱码解决方案
2019-03-05 15:18:41MySQL默认latin1(其实就是ISO-8859-1)字符集。这显然不能满足我们的需要,因此我们把它调整为UTF8字符集,以兼容大多数字符集。 1. 先来执行两条SQL,来检测下当前的MySQL默认字符集编码: Sql命令: mysql&...