用途:在 Windows 上处理中文文本时,遇到乱码、检测或统计结果可疑,或命令中含 Unicode 码点,可用本技能提供的已验证做法。
主要能力与工具选择:检测/统计中文首选 python,因其按 Unicode 语义处理,与 shell locale 无关;匹配/扫描用 rg,其 Unicode 语义可靠、无 locale 陷阱,勿用 GNU grep -P 处理 Unicode;管道或文件输出中文用 python(本机 PYTHONUTF8 已生效)或显式指定 encoding=。
用法示例:统计中文可用 python 一行脚本,遍历文件并用正则 [\u4e00-\u9fff] 匹配含中文的行并计数。完成判据为中文输出可读,且行数与手工核对一两个文件的结果吻合。
环境验证与修复:可用 python -c "import sys; print(sys.stdout.encoding)" 检查输出编码,期望为 utf-8。若回退为 GBK/cp936,可执行 setx PYTHONUTF8 1,并在 ~/.config/mise/config.toml 追加 [env] 段设置 PYTHONUTF8 = "1",重启后生效。持久化修改属写盘操作,动手前应先确认配置文件中无密钥/Token 等敏感内容,优先会话内临时生效(命令前加 PYTHONUTF8=1 或 export PYTHONUTF8=1),确需持久化时先展示将追加的内容并取得明确同意。撤销方式为 reg delete "HKCU\Environment" /v PYTHONUTF8 /f 并删除 config.toml 中的 [env] 段。
陷阱与机制:grep -P 的大码点 \x{} 在旧环境(C locale)会逐行报 too large 错并污染 grep -q 统计,UTF-8 但 PCRE 无 UTF 支持时则静默假阴性,均应避免,改用 rg;逐行 while read 配合 grep 循环统计会为每行启动子进程,上千行耗时数十秒(1255 行约 56 秒);python 管道输出未按 UTF-8 编码时中文乱码,排查乱码应先对齐输出方字节编码与消费方解码假设。
限制:资料未提供该技能支持的平台范围、安装方式、版本要求及收费信息。