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

VB.NET连接MariaDB报Incorrect String Value错误,配置UTF8MB4仍未解决

MariaDB UTF8MB4插入报错解决方案

问题根源

错误里的 \xB2 是单字节扩展ASCII字符(比如上标"²"),你使用的MySQL ODBC 8.0 ANSI Driver会默认用系统本地编码(如GBK、CP1252)传递数据,即便连接字符串指定CHARSET=UTF8MB4,也会因为编码不匹配导致插入失败。

修复步骤

1. 替换为Unicode版ODBC驱动

将驱动换成{MySQL ODBC 8.0 Unicode Driver},这个版本会统一用UTF-8处理字符串,避免编码转换冲突。修改后的连接字符串:

Dim s As String = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=" & _server & ";Database=itis;User=itams;Password=P@ssw0rd.;CHARSET=UTF8MB4"

2. 确认全链路字符集配置

  • 检查数据库字符集:
    SHOW CREATE DATABASE itis;
    
    确保输出包含CHARSET=utf8mb4。
  • 检查表和目标字段:
    SHOW CREATE TABLE mrfmon_tbl;
    SHOW FULL COLUMNS FROM mrfmon_tbl LIKE 'short_description';
    
    确认short_description字段的字符集为utf8mb4,排序规则为utf8mb4_unicode_ci或utf8mb4_general_ci。

3. 强制会话级字符集(可选)

如果换驱动后仍有问题,可通过两种方式强制会话编码:

  • 连接字符串方式:
    Dim s As String = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=" & _server & ";Database=itis;User=itams;Password=P@ssw0rd.;CHARSET=UTF8MB4;OPTION=3"
    
  • SQL语句方式:连接成功后立即执行SET NAMES utf8mb4;

4. 检查应用端字符串编码

确保VB.NET程序中传递的字符串没有被错误转换编码,避免手动对字符串做非UTF-8的编码处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:53:17