git on linux encoding with utf-8 vs. gbk
灰太狼的愿望是让老婆孩子喝上羊肉汤,喜洋洋的愿望是活着。所以喜洋洋可以
说,你强迫我被吃掉,灰太狼也可以说,你强迫我过不上正常狼的生活。
我们受到的教育是:不打扰别人的自由,那你的追求就没有问题。然而这个世界
居然不是彼此割裂而是一个整体,也就是说,那有个苹果,我吃了,就没有你的
份。
git是个好东西,Linux也是。但是如果在项目中,大多数人都在用着windows,
你用着linux,然后出现了问题,文件名有乱码。如果没有足够的理由--更高的
生产率之类--你就不能要求大家都切换到先进的linux上。
所以,有的时候,先进与否对于是否成为候选方案,完全没用。
就像我刚刚跟瀚哥谈,某个女生不选某个男生,这是基于她 个人的 此刻的 价值
判断,与这个男生优秀与否没啥关系。事实上,人的"优秀性"是不能排序的。
有些人不明白这个道理。我明白了。我在linux下用git进行版本管理,不幸的
是,项目组的其他成员都用windows,那落后的东西。
然后,我提交一个版本以后,git把凡是中文的文件和目录全都复制了一
遍,ubuntu默认的utf-8编码。
我在网上找啊找方案。其中最完整的是这个:
git乱码解决方案汇总 [http://zengrong.net/post/1249.htm]
大家都建议:把windows换成linux,保持linux系工具的纯正蓝血。
可是我的组员们不会答理我的。连我要求他们装接utf-8改造过的git客户端,他
们都不理我。
[http://www.cnblogs.com/tinyfish/archive/2010/12/17/1909463.html]
失道寡助,就是这个意思。
古兰经故事教育我们,如果命令山朝你走,如果它答理你,你就朝它走吧。
于是,我在给出另一个"终极"的git乱码解决方案。而且非常简单。
*在操作git时,把区域设置修改为 中文GBK。*
用linux的,当你与windows对话的时候,改变你自己。
* 在终端中
** 跟windows保持一致
export LC_ALL=zh_CN.GBK; export LANG=zh_CN.GBK
terminal -> set charactor encoding -> gbk
这之后就可以进行git相关操作了。
** 切换回linux默认
export LC_ALL=en_US.utf8; export LANG=en_US.utf8
terminal -> set charactor encoding -> unicode(utf-8)
这之后你又回到了人间,温暖的安全的伟大的linux怀抱。其实,你一直也没有
离开。
* 在emacs中
** 跟windows保持一致
: M-x prefer-coding-system gbk
** 切换回linux默认
: M-x prefer-coding-system utf-8
* 改变文件名的编码
如果已经造成乱码的恶果,还可以在utf8和gbk之间切换文件名。真的修改,而
不是像上面那样修改显示的(解码的)效果。
convmv <filename> -f utf8 -t gbk
例外。convmv在fat32的U盘上运行无效,估计是fat32不允许非法编码。
我们生活在这个世界上。
为了与他人交流,我们不得不使用他们的语言。除了作为病人孩子老人,除了作
为弱者,没有权利要求别人采用我们的语言。
我们采用他人的,大家认可的语言。这并非意味着我们改变了内心的规则。所
以,在听完传教以后,我们可以用你的词汇你的知识框架来讨论你的经典教材,
但是,我不能说阿门。因为那词的意思是"我同意。"
从utf-8转到gbk,不过是用狼的声音,用羊的声音,用英语的声音,把本来我们
心中所想的,以这样的声音说出来而已。
其实可怕的并不是使用别人的语言,而是使用别人的思想,尤其是自己也并不清
楚那些思想的原则是什么,尤其是自己也并不清楚自己希望的是什么。
1 comment:
hi!,I lovе your ωriting νeгy a
lot! shaгe we bе in cοntact extгa abοut уour poѕt
оn AOL? I neeԁ an expеrt on this spacе to
гesolve my ргoblem. Маy bе thаt's you! Having a look ahead to peer you.
Also visit my blog post; houston garden centers spring tx
Post a Comment