MySQL CLI与Workbench字符集不一致及chcp报错解决方案问询
MySQL Workbench 8.0.27 非英文环境chcp报错及字符集不一致解决方案
以下方案均无需降级版本、无需修改系统全局配置,风险可控:
方案1:批处理脚本启动(零代码修改,优先推荐)
完全不改动Workbench内置文件,仅自定义启动脚本:
- 新建文本文档,写入以下内容:
@echo off :: 临时切换当前会话代码页为UTF-8,不影响全局 chcp 65001 > nul :: 启动Workbench,路径请和你本地的安装路径保持一致 start "" "C:\Program Files\MySQL\MySQL Workbench 8.0\MySQLWorkbench.exe"
- 将文件后缀修改为
.bat,放置在桌面等方便访问的位置,后续双击该脚本启动Workbench即可。
原理:仅对Workbench运行的会话生效,不会修改系统全局代码页,也不会干扰其他软件的字符集表现。
方案2:安全修改os_utils.py文件(适配所有代码页,无硬编码风险)
如果不想每次通过批处理启动,可以修改内置Python文件的逻辑,和网上硬改固定编码的方式不同,本方案动态适配系统编码,不会引发兼容问题:
- 打开路径
C:\Program Files\MySQL\MySQL Workbench 8.0\workbench\os_utils.py,在文件头部导入模块的区域新增一行:
import locale
- 找到你提到的
subprocess.Popen代码行,将encoding="utf-8"替换为encoding=locale.getpreferredencoding(),修改后完整代码为:
process = subprocess.Popen(command, stdin = subprocess.PIPE, encoding=locale.getpreferredencoding(), stdout = subprocess.PIPE, stderr = subprocess.STDOUT, shell=True)
- 保存文件后重启Workbench即可生效。
方案3:修改快捷方式启动参数
无需新增额外文件,直接修改原有快捷方式配置即可:
- 右键点击MySQL Workbench的桌面快捷方式,选择「属性」
- 在「目标」输入框的原有路径末尾,先加一个空格,再追加参数
--default-character-set=utf8,修改后示例:
"C:\Program Files\MySQL\MySQL Workbench 8.0\MySQLWorkbench.exe" --default-character-set=utf8
- 点击「确定」保存配置,后续直接双击快捷方式启动即可。
字符集不一致问题补充修复
针对MySQL CLI和Workbench查询返回字符集结果不一致的问题,可通过以下配置统一:
- 打开Workbench的连接编辑页面,切换到「高级」标签
- 在「Others」下方的输入框中添加如下SQL:
SET NAMES utf8mb4;
- 保存连接配置后重新连接数据库,两边字符集查询结果即可统一。
内容的提问来源于stack exchange,提问作者hansf14
相关产品推荐
相关产品推荐

