使用nmap扫描提示utf-8编码错误_一次MySQL GBK编码的故障分析-爱可生

本文介绍了在使用MySQL for .NET Connector时遇到的一个GBK编码故障,当中文字符串中混有全角字符时,出现转义符号错误。分析了.NET驱动源码,发现全角和半角单引号会被转义,并且在GBK编码下,字符串末尾的半角单引号字符被错误地转义,导致语法错误。通过实验验证了故障现象,并排除了全角字符的影响。
摘要由CSDN通过智能技术生成

一次MySQL GBK编码的故障分析

最近有用户遇到MySQL GBK字符集的一个坑,我也是第一次遇到,网上也没看此类case,所以整理了故障分析报告分享给大家,供参考。

故障描述

用户描述说:在使用MySQL for .NET Connector的时候,MySQL客户端和服务端的字符集设置都是GBK的情况下,遇到中文输入中夹杂全角字符提示语法错误,不清楚为何被添加了转义符号,怀疑和全角字符有关。

c0de596ddf12c0a4269babe95d2b22ee.png

从错误提示来看,有这几个表现:

  1. 字符串中间的全角单引号字符被加上了反斜杠转义;
  2. 字符串末尾的半角单引号字符被加上了反斜杠转义;
  3. 整个字符串被单引号包裹;
  4. 提示语法错误,而非数据格式相关错误。

故障分析

首先需要查看下 .net 驱动源码,确认以上1、2、3现象确实是驱动行为。

这里定义了需要转移哪些字符,其中包括全角和半角单引号了。

enum CharClass : byte

{

None,

Quote,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值