解决MySQL无法输入中文字符的问题

这篇具有很好参考价值的文章主要介绍了解决MySQL无法输入中文字符的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

解决MySQL无法输入中文字符的问题

解决MySQL无法输入中文字符的问题

前几日在使用MySQL数据库的时候,出现了一处保存,故作此记录✍

问题描述

  • 下面是我这样exam表的结构
mysql> desc exam;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| name    | varchar(50)  | YES  |     | NULL    |       |
| chinese | decimal(3,1) | YES  |     | NULL    |       |
| math    | decimal(3,1) | YES  |     | NULL    |       |
| english | decimal(3,1) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
  • 然后我使用insert into语句往这个表中插入了一条记录
mysql> insert into exam values (1, '张三', 78, 89, 93);
  • 但是却报出了下面这样的错误
ERROR 1366 (HY000): Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1

仔细阅读报错提示后,说是【位于第1行“name”列的字符串值“\xE5\xBC\xA0\xE4\xB8\x89”不正确

问题排查

然后我思考了一下🤔可能是和当前数据库的字符集设置有关系,因为我在插入英文的时候是没有问题的

  • 然后便使用下面这句查看了一下当前我的MySQL的各种编码
show variables like '%character%';
  • 然后一查看就发现我的【character_set_database】数据库字符集为latin1,也就是拉丁文,对于这种字符集来说支持不了中文的
mysql> show variables like '%character%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | utf8                                                    |
| character_set_connection | utf8                                                    |
| character_set_database   | latin1                                                    |
| character_set_filesystem | binary                                                  |
| character_set_results    | utf8                                                    |
| character_set_server     | latin1                                                     |
| character_set_system     | utf8                                                    |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.01 sec)

解决MySQL无法输入中文字符的问题

解决方案

然后来说一下该如何去解决这个问题,这里提供两种解决方案

1️⃣创建数据库时设置字符集为utf8

create database 数据库名 character set utf8;
  • 例如下面这里,我新创建了一个名为test的数据库,后面跟上character set utf8后,再去查看当前数据库的字符集就是utf8了
mysql> create database test character set utf8;
Query OK, 1 row affected (0.00 sec)

mysql> show variables like '%character%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | utf8                                                    |
| character_set_connection | utf8                                                    |
| character_set_database   | utf8                                                    |
| character_set_filesystem | binary                                                  |
| character_set_results    | utf8                                                    |
| character_set_server     | latin1                                                     |
| character_set_system     | utf8                                                    |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.00 sec)

💬 那有人就会说:这样不是很麻烦吗,每次去创建数据库都要手动指定一下字符集

  • 是的,所以你可以考虑第二种方案,做到一劳永逸

2️⃣修改数据库配置文件【比较麻烦】

什么是配置文件?

  • 用户配置文件就是在用户登录电脑时,或是用户在使用软件时,软件系统为用户所要加载所需环境的设置和文件的集合
  • 很多程序,内部支持多种“模式”,可以调整当前程序,让他应用那种模式。 因此就可以借助“开关”来切换模式!软件的开关通常会用一个“图形化界面”,但是对于 MySQL 等专用软件则一般没有对应的图形化界面表示开关。只是通过一个【专门的文件】,来保存这些开关。这个文件就是 “配置文件”

① 而对于MySQL的配置文件就叫做my.ini,我们可以通过【Everything】这个搜索工具来进行查找

解决MySQL无法输入中文字符的问题
② 打开路径后我们就看到了这个文件,当然你也可以直接在C盘的MySQL安装位置中招(MySQL默认安在C盘)

⚠注意看我下面的两个备份文件,在修改重要的配置文件前要先进行备份

解决MySQL无法输入中文字符的问题

③ 然后我们就可以通过记事本等方式去打开这个配置文件

解决MySQL无法输入中文字符的问题

④ 接下去找到这两个地方,把前面的# + 空格去掉,并且在=后面加上utf8【注意这里一点空格也不要加!!!】

解决MySQL无法输入中文字符的问题

⑤ 在上面修改完配置文件,Ctrl + s后,找自己的电脑中找到【服务】,然后往下拉找到有关MySQL的,它便是你的MySQL服务器,重启一下即可

⚠注意在重启前要保证配置文件修改正确,否则MySQL会启动失败的

解决MySQL无法输入中文字符的问题
⑥ 接下去就可以再次启动MySQL创建一个新的数据库去看看我们的数据库默认字符集是否改成utf8了

⚠注意之前创建的那个数据库要删掉,因为其默认的字符集就是[latin1]

解决MySQL无法输入中文字符的问题

⑦ 然后我们再试一下去插入一条带有中文字符的记录,就发现没问题了( •̀ ω •́ )y

mysql> insert into exam values (1, '李四', 79, 82, 92);
Query OK, 1 row affected (0.00 sec)

写在最后

再看完了上面的这些内容后,我们来聊聊有关MySQL报错的问题

  • 如果你使用过MySQL的话,就可以知道我们在初学CRUD的时候,会出现很多的报错,于是很多同学面对英文的报错就不知道该如何是好,就懒得学习了,这其实是不对的
  • 如果英语基础不太好的同学可以把报错的提示放在翻译软件中去进行查看,若是能看懂的话最好,如果看不懂的话可以去百度/CSDN搜搜看看,学会去发现问题、排查问题,最后解决问题

本文完,2023年5月21日

解决MySQL无法输入中文字符的问题文章来源地址https://www.toymoban.com/news/detail-459127.html

到了这里,关于解决MySQL无法输入中文字符的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JDBC连接MySQL后出现中文字符乱码的问题及其解决方案

    最近在做JavaWeb课程的实验课,今天在尝试jsp通过jdbc连接数据库向MySQL中的user表插入数据后, 表内数据出现了中文乱码的问题 。下面将详细给出本次问题出现场景以及详细的解决方案。 在我的MySQL中的数据库db1里,有一个名为“user”的表,其属性值如下: 通过navicat向表格中

    2024年02月01日
    浏览(40)
  • pyautogui无法输入中文的两种解决办法

    PyAutoGUI本身不支持输入中文,但可以通过调用pyperclip模块将需要输入的中文复制到剪贴板中,然后使用pyautogui模拟Ctrl+V粘贴操作即可。 安装pyperclip模块:在命令行中输入 pip install pyperclip ,安装完成后即可使用。 PyAutoGUI本身不支持输入中文,但可以通过调用系统的输入法来实

    2024年02月10日
    浏览(35)
  • ubuntu系统安装好搜狗输入法后只能输入英文,无法输入中文的解决方案

    自己的电脑环境:Ubuntu20.04.5 自己通过搜狗输入法官网下载deb安装包,然后按照如下指令安装搜狗输入法之后 并且完成相关配置。(具体方法参考:Ubuntu 18.04 安装搜狗输入法) 发现,自己只能输入英文,无法输入中文。 主要是因为缺少包导致的。 安装以下两个包: 然后重

    2024年02月11日
    浏览(69)
  • Ubuntu 下安装Qt5.12.12无法输入中文解决方法

    (1)VMware Workstation 15 Pro (2)Ubuntu 20.04 (3)Qt 5.12.12 64bits (4)Qt Creator 5.0.2 (5)已经安装了fcitx,google拼音和搜狗拼音。 安装完Qt 5.12.12后,打开Qt Creator,发现无法输入中文,并且点击Ubuntu左上角的键盘,也无法切换中文输入,Ubuntu已经安装了Fcitx。但是在其他的环境下是

    2024年02月11日
    浏览(43)
  • 解决opencv, cv2.puttext函数无法显示中文字符

    背景: opencv内置的cv2.puttext函数不能显示中文字符,尝试了下列方法: (1)cv2.freetype。没有这个库; (2)opencv无法导入中文字体库; (3)卸载opencv-python,安装opencv-python-headless, opencv- contrib-python 方法: 使用PIL库作为中转 下载中文字体库https://github.com/StellarCN/scp_zh/blob/master/fonts/S

    2024年02月13日
    浏览(42)
  • Ubuntu 搜狗输入法无法输入中文解决方案(不需要重装,不需要重启服务器)

    Ubuntu 搜狗输入法突然无法输入中文,上午还好用,下午就不好用了,直接上解决方案 1.终端输入 pidof fcitx 找到搜狗的进程,如下图红框中的就是进程 2.直接杀掉这个进程 3.其实到第二步,如果搜狗输入法自动重启了,就不需要这一步,如果没有重启,就在终端输入 fcitx 重启

    2024年02月04日
    浏览(50)
  • 如何解决在Flutter中使用TextField输入框输入中文时可能会出现键盘输入不了中文的问题。

    在Flutter中使用TextField输入框输入中文时可能会出现键盘输入不了中文的问题。 解决方法有以下几种: 在TextField中指定输入类型为TextInputType.text TextField(   keyboardType: TextInputType.text,   ... ) 2.在TextField中指定输入工具为中文输入法: TextField(   inputFormatters: [WhitelistingTextInputFor

    2023年04月22日
    浏览(41)
  • 解决docker容器中文字符乱码问题

    在命令行中,输入中文出现乱码或者键入错误的情况: 这里我想输入:”中文“,但是出现乱码。 并且,我在之前已经创建好镜像,通过镜像生成了容器。 1.使用locale查看当前容器的系统使用的字符集。 2.使用locale -a查看当前容器的系统支持可以使用的字符集。 3.在一些博

    2024年02月03日
    浏览(53)
  • 完美解决mac因为中文输入法导致的卡顿问题

            我机器是M1 pro,偶现卡顿问题,后来发现是自带中文输入法导致的。使用活动监视器是可以关闭进程解决。但是卡顿的时候操作活动监视器关闭进程会很卡顿,所以写了一个脚本,直接kill掉对应进程。         没代码基础的,需要将这个保存到一个文本文档中,

    2024年02月08日
    浏览(130)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包