今天下班前往微信的文件传输助手发了一条消息,是SQL语句,如下:

CREATE TABLE `user` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',
 `username` varchar(20) NOT NULL COMMENT '用户名',
 `password` char(40) NOT NULL COMMENT '登录密码',
 `api_token` varchar(128) NOT NULL DEFAULT '' COMMENT 'token',
 `created_at` int(10) unsigned NOT NULL COMMENT '创建时间',
 `updated_at` int(10) unsigned NOT NULL COMMENT '更新时间',
 PRIMARY KEY (`id`),
 UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'

晚上回到家,本想复制这条消息记录在家里的电脑创建数据表,却莫名其妙报错了,如下图:

肉眼观察,明明格式是一样的,怎么就报错了呢?

把这段从微信复制出来的文本保存成文件,然后用 WinHex 查看,发现原本应该是空格 20 缩进的地方,变成了字符 C2 A0,如下图:

原来,这段SQL格式的文本在微信里进行同步后,原文被“篡改”了!

手动把这个特殊空格替换成常规空格,问题得以解决。

关于特殊字符 C2 A0 的更多阅读:https://blog.csdn.net/qfzhangwei/article/details/89505441