
不知道这里用 hg 的人多不,我在 windows 下创建的 repo ,在 windows 下克隆使用一切正常,但是到 mac 下克隆出来的中文文件名会乱码,有什么解么?
网上查了各种方法都不对,包括 FixUtf8 , set LANG environment ,传递 encoding 参数,还是说我弄错了什么。
1 neoblackcap 2016-11-04 12:29:02 +08:00 你确认是 hg 的问题而不是本身文件的编码问题? |
2 congeec 2016-11-04 12:30:11 +08:00 你在 Windows 下文件的中文名编码可能是 GBK, GB18030, UTF-16-LE, UTF-8. 改 OS X 的 Terminal.app (如果你用这个 Console )输出字符串的编码和 Shell 里的 LC 打头的编码包括 LANG ),都改成跟 Windows 一致的。 P.S. 我不用 hg ,可能 hg 本身也能指定 Encoding ,这个你自己看着办了 |
3 bluesky139 OP @neoblackcap 不是文件编码,是文件名编码。 |
4 jarlyyn 2016-11-04 13:23:01 +08:00 为什么会有中文文件名…… 这是坑自己啊 |
5 bluesky139 OP @jarlyyn 非程序人员使用的一些文件。 |
6 BOYPT 2016-11-04 13:34:12 +08:00 先确认仓库里面的文件名是什么编码, 如果那文件当初在 win 提交的,那大可能仓库里面就已经是 gbk 编码的文件名,因此 fixutf8 插件没用, fixutf8 插件是对仓库中 utf8 文件名的文件在 win 平台 checkout 时候使用本地编码的补丁,因此楼主需要一个“反 fixutf8 ”插件……(就是把 fixutf8 里面几个变量倒过来) 。。上次使用 mercurial 都 5 6 年前了,就是因为这类坑,但是这个是设计问题, hg 设计是保持提交者的原汁原味,所以比较解的。 所以楼主有两选择: 1. 自己本地弄个反 fixutf8 2. 修改仓库内为 utf8 ,参考 http://serverfault.com/questions/319070/mercurial-convert-filename-encoding |
7 neoblackcap 2016-11-04 13:37:17 +08:00 @bluesky139 https://www.selenic.com/mercurial/hg.1.html#win32mbcs 试试这个,不过 mercurial 官方是说请使用 ascii 作为文件名来在跨平台上面使用 |
8 zhuangzhuang1988 2016-11-04 13:50:15 +08:00 调试一下 hg 就好了... |
9 zhuangzhuang1988 2016-11-04 14:04:18 +08:00 就像这样, 最快找问题的办法, 调试. |
10 introom 2016-11-04 18:54:32 +08:00 via Android 我不能给建设性的意见,不过我以上读过 mercurial 的源码,很简单,所以你要是半天否解决不了,不如花半天时间看它代码,多半能找出哪一步是问题所在,这也是我解决问题的办法。 |