Bash Tool 之于 Windows Powershell 乱码一事

2026-04-13 13:171阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

cc这些在windows Bash Tool 调用命令 powershell时 很容易乱码
因为内置的powershell 5 是936 GBK的
一旦有中文输出或者符号什么的就会开始显示不了 这会极大的污染上下文和阻断LLM读入 提高了出错风险 比如误删库
image1920×338 111 KB
image1920×522 126 KB

以及虽然 pwsh 7 是默认UTF-8 的但是 如果 被 pwsh这样调用也没招 被git-bash套了一层,而且他很容易为了干净用 -NoProfile 来执行 这样你设置在 $PROFILE 里也无济于事
(codex的不是很清楚,但道理一样

所以我们就需要在git-bash上来预先指定一下 UTF-8

$HOME\.bashrc

# 搞定python export PYTHONIOENCODING=utf-8 export PYTHONUTF8=1 # 搞定通过 Git Bash 管道调用时中文输出乱码问题 _ps_utf8_wrapper() { local exe="$1"; shift local pre_args=() local cmd="" local found_command=false while [[ $# -gt 0 ]]; do case "$1" in -Command|-c) found_command=true shift cmd="$*" break ;; *) pre_args+=("$1") shift ;; esac done if $found_command && [[ -n "$cmd" ]]; then command "$exe" "${pre_args[@]}" -Command \ "[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; $cmd" else command "$exe" "${pre_args[@]}" fi } powershell() { _ps_utf8_wrapper powershell.exe "$@"; } pwsh() { _ps_utf8_wrapper pwsh.exe "$@"; }

之后
image1920×596 123 KB

image1920×1595 236 KB

网友解答:
--【壹】--:


--【贰】--:

看不懂,但是觉得很牛


--【叁】--:

又学到了新知识


--【肆】--:


--【伍】--:

你就是win系统的神,哈雷!!!


--【陆】--:

我已经在 windows 上 all in git-bash 了,装个 fzf 感觉能有 linux 下九成的体验


--【柒】--:

这个是真的疑难杂症


--【捌】--:


--【玖】--:

学到了
之前是直接让Claude Code多写一行sys.stdout.reconfigure('utf-8')


--【拾】--:

image398×376 21.6 KB


--【拾壹】--:

你的图为何不动 因为爱吗


--【拾贰】--:

虽然没看懂咋做,但感觉很厉害!!!


--【拾叁】--:

前排点赞学习


--【拾肆】--:

是需要添加这个.bashrc文件到~目录下吗


--【拾伍】--:

已经很久没上Windows了


--【拾陆】--:

专治各种疑难杂症


--【拾柒】--:

一针见血,mark了,肯定用得到。


--【拾捌】--:

支持哈雷


--【拾玖】--:

问题描述:

cc这些在windows Bash Tool 调用命令 powershell时 很容易乱码
因为内置的powershell 5 是936 GBK的
一旦有中文输出或者符号什么的就会开始显示不了 这会极大的污染上下文和阻断LLM读入 提高了出错风险 比如误删库
image1920×338 111 KB
image1920×522 126 KB

以及虽然 pwsh 7 是默认UTF-8 的但是 如果 被 pwsh这样调用也没招 被git-bash套了一层,而且他很容易为了干净用 -NoProfile 来执行 这样你设置在 $PROFILE 里也无济于事
(codex的不是很清楚,但道理一样

所以我们就需要在git-bash上来预先指定一下 UTF-8

$HOME\.bashrc

# 搞定python export PYTHONIOENCODING=utf-8 export PYTHONUTF8=1 # 搞定通过 Git Bash 管道调用时中文输出乱码问题 _ps_utf8_wrapper() { local exe="$1"; shift local pre_args=() local cmd="" local found_command=false while [[ $# -gt 0 ]]; do case "$1" in -Command|-c) found_command=true shift cmd="$*" break ;; *) pre_args+=("$1") shift ;; esac done if $found_command && [[ -n "$cmd" ]]; then command "$exe" "${pre_args[@]}" -Command \ "[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; $cmd" else command "$exe" "${pre_args[@]}" fi } powershell() { _ps_utf8_wrapper powershell.exe "$@"; } pwsh() { _ps_utf8_wrapper pwsh.exe "$@"; }

之后
image1920×596 123 KB

image1920×1595 236 KB

网友解答:
--【壹】--:


--【贰】--:

看不懂,但是觉得很牛


--【叁】--:

又学到了新知识


--【肆】--:


--【伍】--:

你就是win系统的神,哈雷!!!


--【陆】--:

我已经在 windows 上 all in git-bash 了,装个 fzf 感觉能有 linux 下九成的体验


--【柒】--:

这个是真的疑难杂症


--【捌】--:


--【玖】--:

学到了
之前是直接让Claude Code多写一行sys.stdout.reconfigure('utf-8')


--【拾】--:

image398×376 21.6 KB


--【拾壹】--:

你的图为何不动 因为爱吗


--【拾贰】--:

虽然没看懂咋做,但感觉很厉害!!!


--【拾叁】--:

前排点赞学习


--【拾肆】--:

是需要添加这个.bashrc文件到~目录下吗


--【拾伍】--:

已经很久没上Windows了


--【拾陆】--:

专治各种疑难杂症


--【拾柒】--:

一针见血,mark了,肯定用得到。


--【拾捌】--:

支持哈雷


--【拾玖】--: