开发者

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

开发者 https://www.devze.com 2023-04-06 08:58 出处:网络 作者: 拄杖盲学轻声码
目录mysql插入中文数据变成问号存入mysql的汉字变成问号项目场景问题描述解决方案总结mysql插入中文数据变成问号
目录
  • mysql插入中文数据变成问号
  • 存入mysql的汉字变成问号
    • 项目场景
    • 问题描述
    • 解决方案
  • 总结

    mysql插入中文数据变成问号

    写在前面

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

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

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

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

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

    android

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

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

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

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

    <!-- 配置编码过滤器 -->
    	<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%’;

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

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

    2.修改mysql内部配置文件

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

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

    命令行:vim my.cnf

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

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

    character-set-javascriptserver=utf8

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

    :wq命令保存并退出。

    3.重启mysql大功告成

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

    systemctl stop mysqld.service
    systemctl start mysqld.service

     

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

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

    show variables like ‘char%';

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

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

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

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

    问题解决

    存入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);

    问题描述

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

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

    原因分析:

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

    解决方案

    解决方法:数据源里面增加 useUnicode=true&characterEn开发者_数据库coding=UTF-8

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

    wenti

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

    总结

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

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号