GIT batch是window下原生的GIT命令行终端,兼顾了GIT的命令特性,同时也支持很多UNIX的原生的bash交互方法。但是由于编码问题,在使用GIT bach的时候,用户可能会遇到中文支持的问题。这里简单介绍一下GIT batch在Windows系统下如何有效的支持中文显示的问题。闲言少叙,ICer GO!
GIT batch的GUI界面支持中文
GIT batch的GUI默认是英文界面,用户可以使用下列步骤启用中文GUI界面
1.在GIT batch空白处,右击鼠标,选择Option…
2.在弹出的界面依次选择Window -> Ui language -> zh_CN
3.返回GIT batch,再在空白处单击鼠标右键,这个时候可以看到GIT batch的GUI就是中文格式了。
GIT batch支持中文显示
GIT batch支持中文的前提是需要和系统的代码页保持一致。为了获取这个信息,这里有两个方法
1.通过txt 文本文件
用户创建一个txt文本文文件,并简单书写一些中文文字,然后单击文件->另存为…,这个时候在界面里边会出现编码的选项。
这个默认的编码来自于windows系统的区域配置(控制面板->区域,),中文区用户通常是:中文(简体,中国),这个信息很重要,所有的文件都是使用这个默认编码进行存储的,通常不建议修改,否则已经保存的文件可能都会出现编码问题。
记事本里边的另存为的ANSI编码是指:美国国家标准学会(American National Standards Institute),这个组织规定了不同国家的代码页(code page),这里给中国分配的是GBK,对应的代码页就是:936 (或者cp936). 通过这个信息可以看到,当前系统使用的代码页是GBK而非utf-8.
2.通过命令chcp
查看
打开cmd终端,使用chcp,可以查看到系统默认的编码方式
3.代码页对终端(terminal)的影响
对于 windows系统,可以使用命令file查看一个文本文件的编码方式,譬如:
PS:记事本之类的GUI程序·可以自动识别编码方式,双击文件都可以准确显示文件内容:
但是对于终端(无论是cmd还是GIT batch),在同一时刻只能支持一种编码方式(即通过chcp
返回的编码方式),这里的返回是936,所以只有text_ANSI.txt可以被正确显示:
当然chcp
也可以对当前终端的代码页进行更改(65001就是utf-8的代码页),以便正确显示对应代码页的文本内容
4.GIT batch支持中文显示
GIT batch也是一个终端,同样也受上述问题的影响,在GIT batch里边,可以使用file
命令对文件进行编码方式的查询,如果不做干预,GIT batch 默认使用的是utf-8的代码页(65001),所以,默认会有下面的情形:
由于GIT batch不能使用chcp
命令改变代码页,用户如果需要在GIT batch显示ANSI编码方式的文件,需要采用下列方式进行文本的编码方式更改:选项 -> 文本 -> 本地 -> 字符集 (GBK就是:代码页936)
这样就可以正确显示text_ANSI.txt文件了(对应的:text_utf-8.txt就不能正确显示了)
- text_ANSI.txt不能正确显示,
- text_utf-8.txt可以正确显示,
5.GIT batch的消息打印和命令回显
GIT batch和VIM一样,默认使用的是utf-8的编码方式,如果直接使用ls
等命令,GIT batch可以很好的显示中文字符。不足的是
- 不能在终端中使用
cat
命令显示ANSI编码的文本 - 不能使用VIM编辑ANSI编码的文本(VIM的默认编码也是utf-8)
除过上述不便,其余都很丝滑。
PS:如果在GIT batch里边配置了GBK的编码页,除过cat
ANSI编码的文件可以正常显示中文,其他所有命令的中文都会编程乱码
6.python的对代码页的处理
在python里边,默认是使用系统的区域的编码对文件进行读取的,如果在GBK下,python是无法对utf-8的中文文件进行争取读取的,如果尝试读取,会有下面的问题
这个时候可以使用open函数里边的encoding选项处理utf-8文件的读取:
PS:终端打印和python是两个独立的系统,使用各自的方式处理代码页,互相独立,这里请不要混淆,
系统建议
对于中文windows系统,默认是GBK(代码页:936)的情形,但是对于常用的软件通常都是utf-8的默认编码,如果是终端类的工具,譬如:vim和GIT batch,可能对于ANSI的文件兼容性不好,这时候建议用户使用GVIM,记事本等GUI类的工具进行文本编辑。如果是python等编程工具,用户可以对目标文件的编码进行配置,这个并不需要调整原始文件的编码方式,
综上:系统中存在多个编码格式的文件本身就是常态,用户也不用去特意干预,但是但编辑、读取等操作的时候,需要采取正确的打开方式,保证正确的操作,这样才不会破坏原有的文本内容。
END
作者:艾思后端设计
文章来源:艾思后端实现
推荐阅读
- PCIe 知识点:bus number是如何获取的
- 深入理解SoC上电和boot流程
- Windows下如何查看PCIe设备信息
- SystemVerilog | 这些Debug调试方法你都知道吗?
- PCIe 热插拔原理
更多IC设计干货请关注IC设计专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。