在 WSL(Windows Subsystem for Linux) 中运行 PyQt5 可能会出现中文乱码问题,通常是由于 缺少中文字体 或 环境变量未正确配置导致的。
## ✅ 解决方案
请按照以下步骤逐步排查并解决问题:
### 1️⃣ 安装中文字体
WSL 默认可能没有中文字体,需要手动安装。
Ubuntu/Debian(适用于 WSL2 默认系统):
```bash
sudo apt update
sudo apt install -y fonts-wqy-microhei fonts-wqy-zenhei fonts-noto-cjk
```
Arch Linux(如果你用的是 Arch WSL):
```bash
sudo pacman -S wqy-zenhei noto-fonts-cjk
```
Fedora:
```bash
sudo dnf install -y wqy-microhei-fonts wqy-zenhei-fonts google-noto-cjk-fonts
```
📌 安装完成后,重启 WSL:
```bash
wsl --shutdown
```
然后重新打开 WSL 终端。
2️⃣ 确保 Python 运行环境使用 UTF-8
在 WSL 终端执行:
```bash
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
```
如果想让这个设置永久生效,编辑 `~/.bashrc` 或 `~/.zshrc`:
```bash
echo 'export LANG=zh_CN.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=zh_CN.UTF-8' >> ~/.bashrc
source ~/.bashrc
```
3️⃣ 设置 PyQt5 全局字体
在 PyQt5 代码中,确保使用支持中文的字体,例如 `WenQuanYi Micro Hei` 或 `Noto Sans CJK`:
```python
from PyQt5.QtGui import QFont
app = QApplication(sys.argv)
# 设置全
03-06
3915

04-29