查看: 49|回复: 0

MySqlException: Incorrect string value: '\xE6\x99\xBA\xE8\x83\xBD...' for column 'FieldName' at row 1

[复制链接]

0

主题

0

回帖

0

积分

积极分子

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2010-3-11
发表于 2025-9-12 16:11:00 | 显示全部楼层 |阅读模式

问题:MySqlException: Incorrect string value: '\xE6\x99\xBA\xE8\x83\xBD...' for column 'FieldName' at row 1

原因:在 MySQL 中遇到错误 MySqlException: Incorrect string value: '\xE6\x99\xBA\xE8\x83\xBD...' 通常是由于尝试将一个不兼容的字符编码插入到数据库中导致的。这个问题最常见的原因是尝试将 UTF-8 编码的字符串存储到不支持 UTF-8 的数据库表中。

解决步骤‌

一、确认数据库和表的字符集‌

首先,你需要确认你的数据库和表的字符集是否支持 UTF-8。可以通过以下 SQL 命令查看:

SHOW CREATE DATABASE your_database_name;
SHOW CREATE TABLE your_table_name;

查看 CHARACTER SET 和 COLLATE 字段,确保它们是 utf8mb4(推荐用于存储 emoji 和其他 Unicode 字符)。

二、修改数据库或表的字符集‌

如果发现字符集不是 utf8mb4,你可以修改它。使用以下命令:

#修改数据库的字符集
ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

#修改表的某个字段的字符集
ALTER TABLE your_table_name MODIFY COLUMN your_colum_name VARCHAR(255) CHARACTER SET utf8mb4; 

#或修改整个表的字符集
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

‌三、检查连接字符集‌

确保你的数据库连接也使用 UTF-8。如果你使用的是 MySQL Connector/NET,可以在连接字符串中指定字符集:

string connStr = "server=your_server;user=your_username;database=your_database;port=3306;password=your_password;CharSet=utf8mb4;";

‌四、配置MySQL服务端‌

修改my.cnf/my.ini文件添加:

[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

然后重启MySQL服务。

‌五、新建表规范‌

创建新表时显式指定编码:

CREATE TABLE 表名 (...) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

这是最推荐的长期解决方案。

 



来源:https://www.cnblogs.com/jixingsuiyuan/p/19080930
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部