Cygwin 各种情况下中文乱码--终极解决方案
0.引言
本人从进公司以来一直负责公司Android平台下产品的NDK开发,用的工具:
01. Google的adt-bundle(集成了eclipse和sdk)
02. NDK
03. Cygwin
(PS: 虽然比较新的ndk版本,好像是从 r7开始就已经可以不用Cygwin了,
但是本人从刚开始接触Android NDK开发时就用的是Cygwin,在Window操作系统下足够用了,
作为懒人,既不想折腾到Linux下,又对命令行的操作比较留恋,所以就这么一直用着。高手请勿见怪。)
1. 穷
今天在做一个小测试的程序的时候,使用 javah 命令,想看一下有关 javah 的详细帮助说明,突然发现那些中文说明都乱码了。
话说当初刚装 Cygwin 不久,在看代码里面注释的时候发现中文显示乱码,
当时随便修改了 options 选项里面 Text 的 locale character set ,看能正常显示了就没再继续折腾了。
想不到今天查看帮助文档显示的时候竟然又发现了乱码,只好网上各种查找资料,亲自实践,不断尝试。。。
这次本人决定整理一份终极解决方案,一次性解决,永绝后患。
网上绝大部分都是相互转载,内容翻来覆去雷同相似度很高,却最终也也没有一个完全解决各种情况的中文乱码方案。
有的是文件注释里面中文正常显示了,但是很多英文倒变成了乱码。(如命令“ls -l”中的total、man查看帮助的部分英文)
有的比较好的解决方案实现了命令帮助里面中文正常显示,但是有些地方(比如 ls -la 显示的文件日期)却变成了英文。
2. 变
现在分享本人的完美终极解决方案:
2.1 界面设置
非文本编辑状态下,在界面上右键,选择 options 选项里面 Text 的设置,
Local 一栏选择 C (或者选 Default 的话系统也会自动默认为 C), Character set 一栏选择 GBK。如图所示:
2.2 代码配置
1. 先 “ cd ~ ” 进入用户目录, 打开目录下 .bash_profile 文件,在末尾添加如下几行代码:
2. 在当前目录下,打开 .inputrc 文件,找到有关 bash 命令对8 字节字符处理的代码,去掉这句 set 前面的注释符号(即前面的#号)。
3. 在当前目录下,打开 .bashrc 文件, 让 ls 命令显示中文和颜色,添加代码如下:
(其实经过本人实践,发现这一步对中文乱码的处理没有影响,只是针对 ls 命令做的一个视觉显示改进。不过确实看起来舒服多了。^_^)
3. 通
所谓 “ 穷则变,变则通。” 现在你会发现在这份终极方案处理下,Cygwin 已经完美支持各种情况下的中文显示了。
各种情况例子截图如下:
1. ls -la 命令:
2. javah 命令
3. 查看代码中的中文注释
本文系本人原创,供各位学习交流,如有需要转载请标注出处,并给出本原文链接。谢谢各位支持。^_^