Windows 中文系统编码检查清单

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

Windows 中文系统编码检查清单(GBK vs UTF-8)— 检查安装包、脚本、subprocess 时的编码问题

一句话选型结论

按资料字段整理

Windows 中文系统编码检查清单是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_6556e935/windows-chinese-encoding
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_6556e935仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791623623
正文体量6.8 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Windows 中文系统编码检查清单当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

6.8 KB
模型实际读到的说明书原文,来自技能仓库

Windows 中文编码检查清单

> 安全声明:本技能是检查清单与方法指引,所有命令示例均由你在本地自行决定是否执行;技能本身不自动读取、修改、删除你的任何文件,也不收集或外传任何凭据与数据。

适用场景

检查 Windows 中文系统上的 Python 脚本、安装包、subprocess 调用时的编码正确性。

核心规则

系统命令输出用 GBK,用户文件用 UTF-8。

Windows 中文系统(CP936/GBK)的 subprocess 输出默认是 GBK 编码,不是 UTF-8。

检查清单

1. subprocess 调用

检查所有 subprocess.run() 调用:

  • ✅ 先尝试 utf-8,失败再尝试 gbk — 最佳兼容方案
  • ⚠️ 只用 gbk — 现代 Windows (Win10 1903+) 可能输出 UTF-8,会乱码
  • ❌ 只用 utf-8 — 旧系统输出 GBK 会报错
  • ⚠️ 不指定 encoding — 返回 bytes,需要手动解码
# 最佳方案:先 UTF-8 后 GBK(兼容新旧系统)
for encoding in ["utf-8", "gbk"]:
    try:
        result = subprocess.run(
            ["where.exe", "python"],
            capture_output=True,
            text=True,
            timeout=5,
            encoding=encoding,
        )
        if result.returncode == 0:
            # 解析结果...
            break
    except UnicodeDecodeError:
        continue

# 错误:只用 GBK(现代 Windows 会乱码)
result = subprocess.run(["where.exe", "python"], capture_output=True, encoding="gbk")

2. 文件读写

  • ✅ encoding="utf-8" — 读取用户写的配置文件、JSON、YAML、TXT
  • ✅ encoding="gbk" — 读取 Windows 系统生成的文件(如某些日志)
  • ⚠️ 不指定 encoding — 会用系统默认编码(GBK),可能导致跨平台问题
# 正确:用户文件用 UTF-8
with open("config.json", encoding="utf-8") as f:
    data = json.load(f)

# 不确定编码时的安全写法
try:
    with open(path, encoding="utf-8") as f:
        content = f.read()
except UnicodeDecodeError:
    with open(path, encoding="gbk") as f:
        content = f.read()

3. 路径处理

  • ✅ 使用 pathlib.Path — 自动处理编码
  • ⚠️ 字符串拼接路径 — 确保编码一致
  • ❌ 硬编码路径含中文 — 可能在不同编码环境下出错

4. stderr 捕获

Python 的 stderr 在中文 Windows 上是 GBK 编码:

# 正确
result = subprocess.run(
    ["python", "script.py"],
    capture_output=True,
    encoding="gbk",
    errors="replace"  # 无法解码的字符用 ? 替代,避免崩溃
)

常见错误症状

症状 原因 修复
中文用户名显示为乱码(如 һֻС) subprocess 用 UTF-8 读 GBK 输出 改用 encoding="gbk"
UnicodeDecodeError: 'gbk' 文件是 UTF-8 但用 GBK 读 改用 encoding="utf-8"
PowerShell 输出显示中文为乱码(如 璁板綍、寮€宸?),但无报错 PowerShell 默认 GBK 读 UTF-8 文件——静默乱码,不抛异常 使用 -Encoding UTF8 参数:Get-Content path -Encoding UTF8
UnicodeDecodeError: 'utf-8' 系统命令输出是 GBK 但用 UTF-8 读 改用 encoding="gbk"
中文路径找不到文件 路径编码不一致 统一用 pathlib.Path

验证方法

检查脚本时,搜索以下关键词确认编码设置:

grep -n "subprocess" *.py | grep -v "encoding"
grep -n "open(" *.py | grep -v "encoding"

如果没有指定 encoding 的调用,标记为 ⚠️ 待检查。

.bat 文件编码(重要!)

Windows CMD 的 .bat 文件必须用 GBK 编码 + CRLF 换行,否则中文显示乱码、脚本闪退。

问题症状

  • .bat 文件双击闪退,无任何输出
  • 中文显示为乱码(如 һֻС、锟斤拷)
  • file 命令显示 UTF-8 text(应该是 ISO-8859 text 或 DOS batch file)

修复方法

# 将 UTF-8 编码的 .bat 文件转为 GBK
with open(path, 'r', encoding='utf-8') as f:
    content = f.read()
with open(path, 'w', encoding='gbk') as f:
    f.write(content)

生成新 .bat 文件时

# 正确:直接写 GBK 编码
with open('script.bat', 'w', encoding='gbk') as f:
    f.write(content)

换行符(CRLF vs LF)

Windows 脚本文件(.bat, .ps1, .cmd)必须用 CRLF 换行。如果用 patch 工具或 write_file 写入,可能混入 LF 换行,导致行为异常。

# 检测并修复
with open(path, 'r', encoding='utf-8-sig') as f:
    content = f.read()
if '\n' in content.replace('\r\n', ''):
    # 有纯 LF 换行,统一为 CRLF
    content = content.replace('\r\n', '\n').replace('\n', '\r\n')
    with open(path, 'w', encoding='utf-8-sig', newline='') as f:
        f.write(content)

文件类型编码参考

文件类型 编码 换行符
.bat / .cmd GBK CRLF
.ps1 UTF-8 BOM CRLF
.txt / .md UTF-8 BOM CRLF
.py UTF-8 LF (Python 自动处理)
.json / .yaml UTF-8 任意

⚠️ setx PATH 截断陷阱(1024 字符限制)

setx PATH "%PATH%;新路径" 有 1024 字符硬限制。当 PATH 超长时(CUDA+Python+Git+LM Studio+Node.js 等很容易超),setx 会静默截断后面的路径,导致其他程序命令丢失。

报错信号:警告: 正保存的数据被裁断到 1024 字符。 但命令仍然"成功"保存了截断后的值。

正确做法:用 PowerShell [Environment]::SetEnvironmentVariable,无字符限制:

powershell -Command "$u=[Environment]::GetEnvironmentVariable('Path','User');if($u -notmatch '新路径'){$u+=';新路径'};[Environment]::SetEnvironmentVariable('Path',$u,'User');Write-Host OK"

setx 改的是用户级 PATH(HKCU),系统级 PATH(HKLM)不受影响。但用户级被截断后,Python、npm、LM Studio 等用户安装的软件路径全丢。


⚠️ 使用须知

本技能是检查清单,不是执行指令。

  • 遇到编码问题时,先按清单排查,确认问题后再修复,不要假设一定有问题
  • 如果不确定某个调用该用什么编码,问用户确认,不要自行猜测
  • 修复前先备份,修复后验证效果
  • 此规则仅适用于 Windows 中文系统
  • Linux/macOS 默认 UTF-8,不需要特殊处理
  • Windows 英文系统可能是 CP1252 编码
  • PyInstaller 打包后的行为可能与开发环境不同

常见问题

5 问
答案由本站依据条目字段整理
Windows 中文系统编码检查清单怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_6556e935/windows-chinese-encoding。安装方式为未标注。装完刷新技能列表或重开客户端。

Windows 中文系统编码检查清单支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Windows 中文系统编码检查清单权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Windows 中文系统编码检查清单收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Windows 中文系统编码检查清单用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。