You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中字符ō显示为?的问题求助(Win11+MySQL8.0.32)

问题描述
  • 系统环境:Windows 11
  • MySQL版本:Ver 8.0.32 for Win64 on x86_64 (MySQL Community Server - GPL)
  • 操作流程:
    1. 通过MySQL Shell创建数据库:
      CREATE DATABASE test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
      USE test_db;
      
    2. 创建示例表:
      CREATE TABLE test_tbl (
          title VARCHAR(100) NOT NULL
      );
      
    3. 插入含特殊字符ō的测试数据:
      INSERT INTO test_tbl(title) values('Bashō');
      
  • 异常情况:查询结果中ō始终显示为?,更换utf8mb4_general_ci、utf8mb4_0900_ai_ci等排序规则后问题仍未解决。
解决方法

1. 显式设置连接字符集

连接数据库后执行以下命令,强制客户端与服务器使用utf8mb4字符集交互:

SET NAMES utf8mb4;

也可以在启动MySQL Shell时直接指定字符集参数:

mysqlsh --default-character-set=utf8mb4 -u 你的用户名 -p

2. 修改MySQL配置文件永久生效

找到Windows下MySQL的配置文件(通常路径为C:\ProgramData\MySQL\MySQL Server 8.0\my.ini),在对应段落添加配置:

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

保存后重启MySQL服务,确保配置生效。

3. 检查客户端字符集变量

在MySQL Shell中执行以下命令,查看当前字符集配置:

SHOW VARIABLES LIKE '%character_set%';

需确保以下变量值为utf8mb4:

  • character_set_client
  • character_set_connection
  • character_set_results
    若不符,执行SET NAMES utf8mb4;临时修正,或通过配置文件永久设置。

4. 调整Windows终端编码

Windows命令提示符/PowerShell默认编码可能不是UTF-8,导致显示异常。先执行以下命令切换终端编码:

chcp 65001

再启动MySQL Shell执行查询,特殊字符即可正常显示。

内容的提问来源于stack exchange,提问作者Coldchain9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 14:43:17