为表的添加中文属性时出现的Incorrect string value: '\xE7\x9A\x84\xE6\xB1\xEA...

本文介绍了一种在MySQL中解决中文乱码问题的有效方法。通过在创建数据库时指定默认字符集为UTF-8,可以避免中文显示乱码的情况。

在网上看了很多很多的办法,绝大部分是dp.opt文件与my.ini文件,然后在进入MySQL->show  variables like 'char%' 查看是否把默认latin的几个参数改成gbk

其实,这些都无可厚非,但我走完这些步骤的时候,发现还是不能存储中文信息。

因为用多了SQL,在创建数据库的时候不会加上默认的charset,SQL默认是utf-8格式的

所以在MySQL中,在建数据库的时候,在sql语句后面加上default chaset utf8 collate utf8_unicode_ci;

这样就可以解决中文乱码问题了

### MySQL 插入数据遇到字符编码错误解决方案 当尝试向 MySQL 数据库插入包含特定字符的数据,可能会遇到类似于 `Error 1366 (HY000): Incorrect string value: '\xE7\x94\xB7'` 的错误提示。这通常是因为数据库、或列的字符集设置不当所致。 #### 解决方案概述 为了有效解决此类问题,建议按照以下步骤操作: - **确认当前字符集配置** 首先检查现有数据库和格所使用的字符集是否支持所需的语言字符。可以通过运行 SQL 查询来获取这些信息: ```sql SHOW CREATE DATABASE your_database_name; SHOW CREATE TABLE your_table_name; ``` - **调整服务器级字符集** 如果发现默认字符集不适合,则可以在全局范围内更改它。编辑 MySQL 配置文件 `/etc/my.cnf` 或者相应的路径下的配置文件,在 `[mysqld]` 下添加如下行并保存更改[^5]: ```ini [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci ``` 接着重启 MySQL 服务使新设置生效: ```bash systemctl restart mysqld.service ``` - **转换已有数据库/到 UTF-8 编码** 对于已经存在的数据库及其内部结构,可以使用 ALTER 语句将其转为更广泛的字符集如 utf8 或更好的 utf8mb4 来兼容更多种类的文字输入[^4]: ```sql -- 更改整个数据库的字符集 ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; -- 转换单个至新的字符集 ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` - **确保客户端连接也采用相同字符集** 当应用程序通过编程接口访问数据库,还需保证其发送给 MySQL Server 的请求同样指定了正确的字符集参数。对于某些驱动程序来说,可能需要显式指定 charset 参数;而对于其他情况则可通过初始化会话变量实现统一管理: ```sql SET NAMES utf8mb4; ``` 完成上述所有步骤之后再次尝试执行原始 INSERT 操作应该不会再碰到类似的字符编码异常了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值