You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

插入匈牙利语特殊字符执行SQL时报1366错误如何解决?

排查与修复步骤

  • 确认三级字符集统一配置
    仅修改字段的排序规则无法解决问题,需要保证数据库、表、字段三级字符集均配置为utf8mb4:

    1. 执行查询确认当前配置:
    -- 检查数据库字符集
    SELECT schema_name, default_character_set_name, default_collation_name FROM information_schema.SCHEMATA WHERE schema_name = '你的数据库名称';
    -- 检查目标表字符集
    SELECT table_name, table_collation, CCSA.character_set_name FROM information_schema.`TABLES` T, information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA WHERE CCSA.collation_name = T.table_collation AND T.table_schema = '你的数据库名称' AND T.table_name = 'tbl_instructions';
    
    1. 若配置不符合,执行修改语句:
    -- 修改数据库全局字符集
    ALTER DATABASE 你的数据库名称 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
    -- 整表转换字符集(会自动同步所有字段的字符集配置)
    ALTER TABLE tbl_instructions CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    
  • 调整数据库连接字符集
    插入数据前,先在当前数据库会话执行连接字符集设置语句:

    SET NAMES utf8mb4;
    

    如果是通过代码插入数据,需要在数据库连接配置中显式指定字符集为utf8mb4,避免客户端默认用其他编码传输数据。

  • 检查SQL执行环境编码
    确认你执行INSERT语句的客户端(phpMyAdmin、Navicat、命令行等)本身使用UTF-8编码,导入的SQL文件要保存为UTF-8无BOM格式,避免本地编码和数据库编码不兼容。

注意:MySQL原生的utf8字符集实际为utf8mb3,最多仅支持3字节的Unicode字符,不要使用该字符集,统一用utf8mb4可兼容所有Unicode字符。

内容的提问来源于stack exchange,提问作者Dev Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 10:15:03