您尚未登录。

#1 2018-10-09 19:44:10

Zangwill
会员
注册时间: 2018-03-16
帖子: 15

[已解决]问个编码问题,转码错误后如何恢复

文件夹里面有很多*.txt文件,是我以前用Win的时候编辑的,当时是用GBK编码保存的,现在我用vim想把它们批量转为UTF-8编码,结果转成了乱码,想问下如何恢复?
我的 vim 配置:

cat ~/.vimrc
set fileencodings=utf-8,big5,ucs-bom,gb18030,gbk,gb2312,cp936,latin1
set termencoding=utf-8
set encoding=utf-8

转码时用的命令

find . -type f -name "*.txt" -exec vim -c "set encoding=utf-8" -c "set fileencoding=utf-8" -c "set nobomb" -c "wq" {} \;

示例,我用 GBK 编码保存了如下文件:

白日依山尽,黄河入海流。
欲穷千里目,更上一层楼。

结果转成的UTF-8文件里面是这样:

啞甡刓鴃ㄛ酴碩漆霜﹝
郗爵醴ㄛ載奻珨脯瞼﹝

请问能恢复吗?如果能的话,怎么弄?

最近编辑记录 Zangwill (2018-10-09 21:39:57)

离线

#2 2018-10-09 20:43:13

依云
a.k.a. 百合仙子
所在地: 一个等待妹纸出现的地方
注册时间: 2011-08-21
帖子: 4,859
个人网站

Re: [已解决]问个编码问题,转码错误后如何恢复

for f in $(find . -type f -name "*.txt"); do
  <$f iconv -t big5 | iconv -f gbk >$f.utf8
done

记得操作前先备份。

离线

#3 2018-10-09 21:39:36

Zangwill
会员
注册时间: 2018-03-16
帖子: 15

Re: [已解决]问个编码问题,转码错误后如何恢复

@依云,谢谢,文件全部恢复正常了

离线

页脚