咨询:MySQL为何无法识别从Word粘贴的单、双引号?
为什么Word复制的引号在MySQL里无法识别?
这个问题我之前帮同事排查过,核心原因其实是Word的智能引号机制在搞鬼!
具体原因:
- Word默认开启了「智能引号」功能,它会把你输入的标准直引号(
'、")自动转换成弯引号(‘’、“”)。这些弯引号属于Unicode中的特殊字符(比如左单引号U+2018、右单引号U+2019),而MySQL只识别ASCII标准的直引号(U+0027单引号、U+0022双引号),所以复制到MySQL后就会触发“无法识别字符”的报错。 - 至于其他字符能正常识别,是因为Word只会对引号这类标点做智能转换,像SQL关键字(
SELECT、FROM)、字段名、数字、普通中文/英文文本等,都是标准ASCII或通用Unicode字符,不会被Word修改,所以MySQL能正常解析。
解决办法:
- 临时应急:把Word里的SQL语句先粘贴到纯文本编辑器(比如系统自带的记事本、Notepad++),纯文本环境会自动把弯引号转成标准直引号,之后再复制到MySQL执行就没问题了;也可以在纯文本编辑器里用替换功能,批量把弯引号换成直引号。
- 永久解决:关闭Word的智能引号功能。打开Word的「选项」→「校对」→「自动更正选项」,分别在「自动套用格式」和「键入时自动套用格式」标签里,取消勾选「直引号替换为弯引号」,这样以后在Word里写的引号就是MySQL能识别的标准直引号了。
内容的提问来源于stack exchange,提问作者Yu Wang




