如何用iconv批量修改文本编码?
- jioyo源
- 帖子: 3476
- 注册时间: 2008-10-08 13:48
如何用iconv批量修改文本编码?
从别人电脑拷来很多TXT文件,可都显示乱码,用iconv一个一个改太慢,如何用iconv批量修改,望知者指点。
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
- hubert_star
- 论坛版主
- 帖子: 5373
- 注册时间: 2007-10-29 22:12
- 系统: OSX 10.9 + Ub 1304
- 来自: 江苏南京
Re: 如何用iconv批量修改文本编码?
bash的for
看bash指南即可
看bash指南即可
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒 故我有罪!
我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;
特此声明!
有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。
欢迎来我的新浪微博@me
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒 故我有罪!
我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;
特此声明!
有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。
欢迎来我的新浪微博@me
- jioyo源
- 帖子: 3476
- 注册时间: 2008-10-08 13:48
Re: 如何用iconv批量修改文本编码?
还得自己来呀,哎,这年头人懒了是不行呀。
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
- hellojinjie
- 帖子: 1150
- 注册时间: 2007-09-14 21:03
- 来自: 浙江
Re: 如何用iconv批量修改文本编码?
代码: 全选
for i in `find . *`; do if [ -f "$i" ]; then iconv -f gb2312 -t utf8 $i > "./converted/$i" fi ; done
Say hello to everyday!
- jioyo源
- 帖子: 3476
- 注册时间: 2008-10-08 13:48
Re: 如何用iconv批量修改文本编码?
好象要建converted文件夹,可是还是出现这个问题;jioyo@jioyo-laptop:~/myspace/ebook/txt$ for i in `find . *`; do if [ -f "$i" ]; then iconv -f gb2312 -t utf8 $i > "./converted/$i" fi ;done
-bash: 在未预料的“done”附近出现语法错误
for i in *.txt ; do iconv -f gb2312 -t utf-8 $i > "converted/$i";done
只能转一部分,是一个文件里的一部分内容编码变了,可别的都没有了%
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
- daf3707
- 论坛版主
- 帖子: 12731
- 注册时间: 2007-06-13 15:57
- 来自: 在他乡
Re: 如何用iconv批量修改文本编码?
代码: 全选
enconv *.txt
- hellojinjie
- 帖子: 1150
- 注册时间: 2007-09-14 21:03
- 来自: 浙江
Re: 如何用iconv批量修改文本编码?
怎么会只转一部分啊
enconv 什么命令啊 ,搜不到。。
代码: 全选
for i in *.txt; do iconv -f gb2312 -t utf-8 $i -o "iconv_$i"; done
Say hello to everyday!
- jioyo源
- 帖子: 3476
- 注册时间: 2008-10-08 13:48
Re: 如何用iconv批量修改文本编码?
谢了,学习了……daf3707 写了:代码: 全选
enconv *.txt
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
- sevk
- 帖子: 2060
- 注册时间: 2007-05-08 16:26
- 系统: arch
- 来自: 火星内核某分子内某原子核内
- 联系:
Re: 如何用iconv批量修改文本编码?
直接用vim打开这些文件就不会乱码.会自动识别编码的.
/etc/vim/vimrc 里加2行:
/etc/vim/vimrc 里加2行:
代码: 全选
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,iso-8859-1
set encoding=utf-8
笔记本 :
F208S : gentoo
A460P i3G D6 : UBUNTU + WIN7
UN43D1 : UBUNTU + WIN7
1000人超级QQ群 LINUX + WIN : 31465544 或 18210387
F208S : gentoo
A460P i3G D6 : UBUNTU + WIN7
UN43D1 : UBUNTU + WIN7
1000人超级QQ群 LINUX + WIN : 31465544 或 18210387
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- jioyo源
- 帖子: 3476
- 注册时间: 2008-10-08 13:48
Re: 如何用iconv批量修改文本编码?
这个我知道,其实主要是给别人弄,直接给别人乱码,我得转下……sevk 写了:直接用vim打开这些文件就不会乱码.会自动识别编码的.
/etc/vim/vimrc 里加2行:
代码: 全选
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,iso-8859-1 set encoding=utf-8
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
- jioyo源
- 帖子: 3476
- 注册时间: 2008-10-08 13:48
Re: 如何用iconv批量修改文本编码?
hellojinjie 写了:怎么会只转一部分啊
enconv 什么命令啊 ,搜不到。。代码: 全选
for i in *.txt; do iconv -f gb2312 -t utf-8 $i -o "iconv_$i"; done
for i in *.txt; do iconv -f gb2312 -t utf-8 $i -o "iconv_$i"; done这个还是不行,我20多M的txt转了后就1.7M了,hellojinjie 写了:怎么会只转一部分啊
enconv 什么命令啊 ,搜不到。。代码: 全选
for i in *.txt; do iconv -f gb2312 -t utf-8 $i -o "iconv_$i"; done
iconv: 372位置的非法输入序列
iconv: 3793位置的非法输入序列
iconv: 4975位置的非法输入序列
iconv: 23031位置的非法输入序列
iconv: 60530位置的非法输入序列
iconv: 55668位置的非法输入序列
iconv: 2903位置的非法输入序列
iconv: 11079位置的非法输入序列
iconv: 91018位置的非法输入序列
iconv: 63052位置的非法输入序列
iconv: 16995位置的非法输入序列
iconv: 1007位置的非法输入序列
iconv: 187199位置的非法输入序列
出来这一堆。
enconv 这个得安enca包。
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
- hellojinjie
- 帖子: 1150
- 注册时间: 2007-09-14 21:03
- 来自: 浙江
Re: 如何用iconv批量修改文本编码?
原来还有enca 可以用来猜编码的。
上面的错误可能是-f 后的参数错误吧,也就是说原来的编码不是gb2312,,
gb18030 和 gb2312 两种编码可不可以混用的?
上面的错误可能是-f 后的参数错误吧,也就是说原来的编码不是gb2312,,
gb18030 和 gb2312 两种编码可不可以混用的?
Say hello to everyday!
- bones7456
- 帖子: 8495
- 注册时间: 2006-04-12 20:05
- 来自: 杭州
- 联系:
-
- 帖子: 91
- 注册时间: 2008-12-23 20:32
Re: 如何用iconv批量修改文本编码?
intel core 2 Duo T5250
nVIDIA geforce 8600m gt
nVIDIA geforce 8600m gt