cmder中文显示相关问题解决方案(1.3以上版本)

cmder虽然Windows命令行的进阶版,虽然好看易用,但其中文编码一直是个问题。网上有不少博客给出解决方案,大部分都已因为版本更新失效。
本文解决方案针对1.3以上版本的cmder用户

中文字体重叠问题

错误方案:

需要取消勾选设置中的Monospace选项

正确方案:

这个问题在cmder v1.3.0以上版本中已经修复,不需要进行任何操作

ls命令中文路径/文件名乱码

错误方案:

添加4行命令到cmder/config/aliases文件末尾…

cmder v1.3.0以上版本初始创建的cmder/config/user-aliases.cmd文件中已经包含:

1
ls=ls --show-control-chars -F --color $*

不需要添加其它命令(实际上添加了也没有效果)

正确方案:

  1. win+ctrl+p打开Settings

  2. 在Settings > Startup > Environment里添加:set LANG=zh_CN.UTF8

PS:

这样修改过ls可以正确显示中文,但ls |more还是会出现乱码。
如果改为set LANG=zh_CN.GBK可以解决这个问题。

PPS:

因为cat命令读取文件的编码与此有关,如果改为GBK则cat一个UTF8文件会显示乱码,
如果改为UTF8则cat一个GBK文件会显示乱码,
具体设置还是看你环境中常用编码。

cd进一个中文目录,中文路径名显示乱码

经过上述设置,cmder一般情况下都能正常显示中文

但是如果你进入一个中文路径的话,cmder的路径的中文仍然是乱码
好在已经有人解决了这个问题

Parse the original prompt for cwd and env names by janschulz · Pull Request #1070 · cmderdev/cmder · GitHub

解决方案

只需下载最新的Release(目前是1.3.1):
Releases · cmderdev/cmder · GitHub

然后解压覆盖就好

最后附上一张配置完成的示意图:

cmder-cn-encode.png