mysql插入中文数据变成问号的解决方案

 更新时间:2023年04月05日 09:16:14   作者:拄杖盲学轻声码  
这篇文章主要介绍了mysql插入中文数据变成问号的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mysql插入中文数据变成问号

写在前面

也许在看这篇文章的你因为这个事情烦恼,网上说的都是什么修改my.ini文件,可是当你发现你的服务器安装的mysql没有这个配置文件岂不是特别的肾疼。

疼就对了,按照我的方法一步步保障你能够配置成功,不然你们打的我*疼。 

第一步:首先检验一下你自己的代码基本配置

1.Jdbc.properties数据库配置文件后面是不是加了characterEncoding=utf-8,如下图所示:

发现没有的话别傻看着,赶紧加起来

2.web.xml有没有配置编码过滤器,就像是这种

没有的话你自己看着办,嘿嘿,为了方便你们复制在下面写一下(是不是很贴心)

<!-- 配置编码过滤器 -->
	<filter>
		<filter-name>characterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf-8</param-value>
		</init-param>
	</filter>

第二步:当你发现上面两个文件都没有问题的话,我们就来看看这个配置文件啦.

1.看数据库编码格式

先登录服务器,进到你的数据库,登录数据库命令(下面的数据库名指的是你创建的数据库名称,比如说test):

mysql -u root -p 数据库名

然后执行下面的命令查看你数据库的编码格式

show variables like ‘char%’;

就是这个latin1在作怪,那么这个问题怎么解决呢?不要心急往下看.

2.修改mysql内部配置文件

先声明一下,最新下载的官网mysql安装包貌似都是没有my.ini文件,但是一定有my.cnf文件,这个时候你就应该去你服务器看下在哪,当然一般都在根目录下的etc/下面。

找到的话你就可以继续往下看,没找到的自己反省(给我留言,我帮你找)

命令行:vim my.cnf

【核心】执行i命令进入编辑模式,在[mysqlid]下面新增下面一句话,也就是汉字编码格式兼容

character-set-server=utf8

:wq命令保存并退出。

3.重启mysql大功告成

我的是在根目录的bin下面执行这两个实现停启

systemctl stop mysqld.service
systemctl start mysqld.service

 

然后你可以很自豪的登录mysql,执行上面这个命令查看你数据库的编码格式

show variables like ‘char%';

是不是很惊喜很意外,哈哈哈哈。

最终经过不泄的努力,总算是把这个中文数据录入进去了,哈哈哈哈,真服自己,都想给自己转个钱啥的,问号什么的可以滚一边去了。

问题解决

存入mysql的汉字变成问号

项目场景

mySql 5.7

java

配置文件:spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/XXX?useSSL=false

插入操作:

@Insert("INSERT INTO foods(food_name,food_taste,food_price,food_description) VALUES (#{foodName},#{foodTaste},#{foodPrice},#{foodDescription})")
	int insert(Food food);

问题描述

存入数据库后汉字变成????

原因分析:

连接数据库的设置需要制定字符集

解决方案

解决方法:数据源里面增加 useUnicode=true&characterEncoding=UTF-8

spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/XXX?useUnicode=true&characterEncoding=UTF-8&useSSL=false

wenti

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql的innodb和myisam的区别及说明

    mysql的innodb和myisam的区别及说明

    这篇文章主要介绍了mysql的innodb和myisam的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • mysql实现事务的提交与回滚的实例详解

    mysql实现事务的提交与回滚的实例详解

    在本篇文章中我们给大家分享一篇关于mysql实现事务的提交与回滚的实例内容,有需要的朋友们可以参考学习下。
    2020-01-01
  • MYSQL聚合查询、分组查询、联合查询举例详解

    MYSQL聚合查询、分组查询、联合查询举例详解

    我们做的很多查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个单一的值,这篇文章主要介绍了MYSQL聚合查询、分组查询、联合查询的相关资料,需要的朋友可以参考下
    2024-09-09
  • MySQL的意向共享锁、意向排它锁和死锁

    MySQL的意向共享锁、意向排它锁和死锁

    这篇文章主要介绍了MySQL的意向共享锁、意向排它锁和死锁,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • MySQL中使用FREDATED引擎实现跨数据库服务器、跨实例访问

    MySQL中使用FREDATED引擎实现跨数据库服务器、跨实例访问

    这篇文章主要介绍了MySQL中使用FREDATED引擎实现跨数据库服务器、跨实例访问,本文讲解了FEDERATED存储引擎的描述、安装与启用FEDERATED存储引擎、准备远程服务器环境等内容,需要的朋友可以参考下
    2014-10-10
  • 浅谈Mysql8和mysql5.7的区别

    浅谈Mysql8和mysql5.7的区别

    本文主要介绍了Mysql8和mysql5.7的区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • MySQL 数据库定时备份的几种方式(全面)

    MySQL 数据库定时备份的几种方式(全面)

    在操作数据过程中,可能会导致数据错误,甚至数据库奔溃,而有效的定时备份能很好地保护数据库。本篇文章主要讲述了几种方法进行 MySQL 定时备份数据库。
    2021-09-09
  • Navicat连接服务器MySQL数据库步骤及遇到错误和问题

    Navicat连接服务器MySQL数据库步骤及遇到错误和问题

    Navicat是一款强大的数据库管理工具,可以用来远程连接MySQL服务器,下面这篇文章主要给大家介绍了关于Navicat连接服务器MySQL数据库步骤及遇到错误和问题的相关资料,文中通过代码及图文介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • mysql如何查询当前数据库中不为空的表

    mysql如何查询当前数据库中不为空的表

    这篇文章主要介绍了mysql如何查询当前数据库中不为空的表问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • linux系统中mysql数据库的导入和导出

    linux系统中mysql数据库的导入和导出

    本文给大家简单记录了一下在linux系统中mysql数据库的导入和导出的方法,有相同需求的小伙伴可以参考下
    2016-02-02

最新评论