求 Windows cmd 正确的编码设置姿势

2015-11-14 08:57:50 +08:00
 simple26
似乎发现一个问题:
如果使用 utf-8 编码,对于中文文件名啥的的确可以识别,但是对于命令中有中文提示的话,例如:#java ,命令输出里的中文就会显示乱码。
如果使用 gbk 编码,命令输出是正确了,中文文件名又装逼看不起人了。

请问 V 友们是怎么设置的
8981 次点击
所在节点    问与答
16 条回复
msg7086
2015-11-14 09:02:09 +08:00
没记错的话 cmd 这货已经没救了。
换 msys2 内置 tty 试试……
ConEmu 我记得都要手动转成 GBK 输出才能正常显示。
simple26
2015-11-14 09:07:08 +08:00
@msg7086 有尝试过 babun,不过问题依旧。那我再试一下 msys2~
simple26
2015-11-14 09:25:03 +08:00
@msg7086 msys2 也不行,可能 cmd 真的没救了。不过 win 的 powershell 没这个问题,以前还真没注意到有这个 powershell.
ipeony
2015-11-14 10:06:05 +08:00
没找到解决方案,后来重装都直接英文版系统了。。。
msg7086
2015-11-14 10:13:50 +08:00
@simple26 msys2 里的 tty ,不是 msys2 。
powershell 默认 utf-8 ,然而并没有什么
h404bi
2015-11-14 10:32:18 +08:00
用 MSYS2 或者 Git Bash (基于 MSYS2 ),然后需要做些设置。

1. Options 里 Text 选项卡中的 Character set 设置为 UTF-8 ,这样可以正常识别 utf8 相关的文件。


2. 这样设置后,在 Mintty 窗口下运行一些 Win 上的命令时会出现乱码(比如 ping, ipconfig 等)


3. 针对这些命令,使用 winpty 进行字符流转换。具体是先安装 winpty ( Git Bash 已自带),然后使用 winpty 执行这类命令($ winpty ping www.v2ex.com )即可正常显示中文。
trimleo
2015-11-14 10:37:42 +08:00
赞楼上
bugsnail
2015-11-14 10:49:39 +08:00
其实 power shell 就已经够了,兼容部分 linux 命令
yangff
2015-11-14 11:13:35 +08:00
Windows PowerShell ISE
bdbai
2015-11-14 12:53:19 +08:00
@h404bi
@msg7086
搭车问一下, Git Bash 里面敲 ipconfig /flushdns 的时候,参数总是不能正确识别,怎么破?
imn1
2015-11-14 12:53:43 +08:00
DOS 命令,更改当前 DOS 编码环境:
chcp 65001 #相当于 utf-8
chcp 932 #相当于 gbk
chcp 932 #相当于 shift-jis
chcp 949 #相当于 euc-kr
chcp 950 #相当于 big5
想永久改变(默认值),网上搜搜,有注册表,因为不单要改编码,还要改字体等好几项,所以需要注册表

为什么是“相当于”,因为 M$的 codepage 与对应的编码有轻微不同,不多,几个到几十个字符而已,一般不影响
megabits
2015-11-14 12:57:32 +08:00
cmd 就是渣渣, PowerShell 才能用。
h404bi
2015-11-14 13:13:50 +08:00
@bdbai 将斜杠(/)换成减号(-)试试。
joshz
2015-11-14 14:35:05 +08:00
@imn1 chcp 65001 用过就知道并没有想象的那么美好,还是 cmd.exe 太弱鸡了。按某轮子的说法,这是微软强推 PowerShell 的策略,要提升 cmd.exe 微软不会有技术难点,就是不愿意而已。
imn1
2015-11-14 15:27:08 +08:00
@joshz
cmd 确实不好,我只是测试 cli 用,或者临时打开跑个命令
如果长期用确实需要第三方终端,我自己都在寻找
感觉 M$一直重心放在窗口化,终端总是格格不入
Alife
2016-11-18 16:42:40 +08:00
chcp 65001 #相当于 utf-8
添加到 ~/.babunrc 中就好了,不用修改注册表

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/236123

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX