Win10系统中MySQL Command Line Client和命令提示符中文乱码问题及解决方案

时间:2024-04-09 17:18:25

Win10系统中MySQL Command Line Client和命令提示符中文乱码问题及解决方案

涉及软件版本

  1. Win10 企业版 X64(10.0.17763.1397)
  2. MySQL:
    - Server version: 8.0.21 MySQL Community Server - GPL
    - Client version: MySQL 8.0 Command Line Client
  3. Java:
    • openjdk version “11” 2018-09-25
    • OpenJDK Runtime Environment 18.9 (build 11+28)
    • OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

问题描述

  1. Win10系统【设置——区域】中,区域设置为“中国”,区域格式设置为“中文(简体,中国)”;【设置——语言】中,Windows显示语言设置为“中文(*)”。
  2. 命令提示符中,键入“javac”和“java”后显示相应的提示命令,其中的中文提示乱码,英文提示正常显示。
  3. MySQL 8.0 Command Line中执行“SELECT * FROM table;”命令后(table的编码方式为utf8mb4),查询出的中文乱码,英文正常显示。

相关名词

  1. 代码页(Code page):即字符集,可用数字编号和字符串两种方式标识,如:936和GB2312表示同一编码,65001和UTF-8表示同一编码。使用“chcp”命令可显示或设置活动代码页编号。

参考资料

  1. Windows代码页详解:https://docs.microsoft.com/en-us/windows/win32/intl/unicode-and-character-set-constants
  2. Windows官方文档:https://docs.microsoft.com/en-us/windows/win32/intl/unicode-and-character-set-constants
  3. Windows代码页编码——名称对照:https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers

问题解决过程

  1. 命令提示符中输入“chcp”命令,显示“活动代码页:437”,键入“chcp 936”,临时修改命令提示符编码方式为GB2312。之后键入“javac”命令,中文仍乱码;键入“java”命令,显示正常。
  2. 命令提示符中键入“chcp 65001”,临时修改命令提示符编码方式为UTF-8。之后键入“javac”命令和“java”命令,均显示中文乱码。
  3. 尝试网页中多种解决方案,如修改注册表等方案,均无法解决问题。

解决方案

  1. 设置Windows:控制面板(查看方式:类别)——时钟和区域——区域——管理——更改系统区域设置——中文(简体,中国)
    Win10系统中MySQL Command Line Client和命令提示符中文乱码问题及解决方案
  2. 若选中“Beta版:使用Unicode UTF-8提供全球说支持”,命令提示符默认代码页为65001(UTF-8),键入javac和java命令后,无任何提示;若不勾选,默认代码页为936(GB2312),键入javac和java中文显示正常,MySQL 8.0 Command Line中查询结果中文显示正常。