怎么把一个目录和其子目录中所有源文件都转换成 UTF-8 编码?

2014-11-11 18:14:53 +08:00
 Akagi201
源码是win下开发的, 我需要在mac/linux下浏览和编辑, 但是直接打开中文是乱码. 我知道vim :set fileencoding=utf-8是可以的, 但是文件比较多. 希望有更简单方法.
3230 次点击
所在节点    问与答
11 条回复
happywowwow
2014-11-11 18:37:20 +08:00
wudaown
2014-11-11 18:42:10 +08:00
安装enca
enca -L zh_CN *
我都是这么做的
wudaown
2014-11-11 18:43:22 +08:00
我的意思是UTF-8 自己看man吧
horryq
2014-11-11 20:29:18 +08:00
iconv ?
aaaa007cn
2014-11-11 23:13:25 +08:00
vim 可以直接通过脚本/批处理输入命令
虽然需要另外实现遍历子目录
或者直接利用 python 的 pathlib 可以十来行就实现整个需求
https://docs.python.org/3/library/pathlib.html

不过即使不转文件编码
也可以在 .vimrc 中设置编码识别顺序吧
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,latin-1
http://edyfox.codecarver.org/html/vim_fileencodings_detection.html
Akagi201
2014-11-12 00:33:31 +08:00
@wudaown 多谢, 比iconv好用
Akagi201
2014-11-12 00:34:15 +08:00
@aaaa007cn 我需要在github上也能正常浏览, 必须转换, enca不错.
Akagi201
2014-11-12 00:36:05 +08:00
@wudaown 发现还要用dos2unix一下, 不让换行还是CRCF
imxz
2014-11-12 00:37:36 +08:00
EncodingConverter 你值得拥有。
Akagi201
2014-11-12 01:09:18 +08:00
@imxz 能给个地址吗?没google到
cdfmr
2014-11-12 09:00:25 +08:00
HanzConvert
https://itunes.apple.com/cn/app/hanzconvert/id442107196

这个也不修改换行符,用 find + dos2unix 搞定。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/145691

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX