有什么命令可以把一个字符串转换编码的呀?

OOo,TeX,KO,ABI,GIMP,Picasa,ProE,QCAD,Inkscape,Kicad,Eagle
头像
AutoXBC
帖子: 1744
注册时间: 2007-10-23 12:54

Re: 有什么命令可以把一个字符串转换编码的呀?

#16

帖子 AutoXBC » 2009-12-01 0:50

highwind 写了:新问题:用ff在webqq的群共享下文件,但是下载后文件名乱码
比如:

代码: 全选

手写表详解.JPG
变成

代码: 全选

%E6%89%8B%E5%86%99%E8%A1%A8%E8%AF%A6%E8%A7%A3.JPG
1.这是utf8和gbk的问题呢,还是ascii码的问题?

2.我在别的网站下载也遇到类似问题,但是也有很多情况没有任何问题,那么应该是网站的问题了吧?

3.那这个问题能靠我修改一些设置解决吗?

4.加入遇到不知原名的类似文件用enca 或者 convmv能将其转换吗?

:em06 还是很菜,老鸟不吝赐教吧。
这是 utf8 编码的文件名,在下载时没有自动解码。不知道怎么设置浏览器,已经下载的可以用 ee 说的 uni2ascii 转换。
viewtopic.php?f=21&t=183041
头像
highwind
帖子: 1362
注册时间: 2008-09-05 23:31
系统: LinuxMint17

Re: 有什么命令可以把一个字符串转换编码的呀?

#17

帖子 highwind » 2009-12-01 12:52

AutoXBC 写了:
highwind 写了:新问题:用ff在webqq的群共享下文件,但是下载后文件名乱码
比如:

代码: 全选

手写表详解.JPG
变成

代码: 全选

%E6%89%8B%E5%86%99%E8%A1%A8%E8%AF%A6%E8%A7%A3.JPG
1.这是utf8和gbk的问题呢,还是ascii码的问题?

2.我在别的网站下载也遇到类似问题,但是也有很多情况没有任何问题,那么应该是网站的问题了吧?

3.那这个问题能靠我修改一些设置解决吗?

4.加入遇到不知原名的类似文件用enca 或者 convmv能将其转换吗?

:em06 还是很菜,老鸟不吝赐教吧。
这是 utf8 编码的文件名,在下载时没有自动解码。不知道怎么设置浏览器,已经下载的可以用 ee 说的 uni2ascii 转换。
viewtopic.php?f=21&t=183041
谢谢楼上,可以解决。 :em11
现在看谁有办法设置浏览器了。 :em09
头像
highwind
帖子: 1362
注册时间: 2008-09-05 23:31
系统: LinuxMint17

Re: 有什么命令可以把一个字符串转换编码的呀?

#18

帖子 highwind » 2009-12-01 13:24

highwind 写了::em11 谢谢楼上阿,原来是要用用 ISO-8859-1来保存阿,接下来我就知道了,真的谢谢了,以后这个播放列表的问题就好办了。
关于转换代码我也有些小技巧。我说出来大家分享下吧,新手帮新手。

您说用kwrite,其实gedit就可以,呵呵,这个如果用ubuntu应该人人都有,那么我依样画葫芦:
1。打开gedit,复制”乱码字符串“到里面,保存为“ISO-8859”编码(是不是大多数情况都可以这样解决?)名字简单点,比如‘a‘
2。打开一个shell,enca 这个'a',看看是什么编码。
3。一般都会是GBK的。然后用enca来转换就可以了,然和cat之,一看就知道是啥了,再rm之,完事。
(我在.bashrc 里做了一个 alias enu='enca -L zh_CN -x UTF-8',因为大多数情况下都是需要这样转换的)
那如果用convmv怎么来实现呢?
iso-8859-1、gbk、utf8转来转去好迷茫阿?
头像
highwind
帖子: 1362
注册时间: 2008-09-05 23:31
系统: LinuxMint17

Re: 有什么命令可以把一个字符串转换编码的呀?

#19

帖子 highwind » 2009-12-01 18:16

运气好,给我试出来了:

1.

代码: 全选

convmv -r -f utf8 -t iso88591 * --notest --nosmart
这时候虽然是乱码,但不要怕

2.

代码: 全选

convmv -r -f gbk -t utf8 * --notest --nosmart
这样应该就能看到正常的中文了

思路是这样的,ubuntu系统默认的是utf8编码,我们先把它变成iso88591,然后用gbk去读取这串字符串,然后写回成ubuntu默认的utf8格式就好了。

至于有没有啥命令能一气呵成呢?用&&就好啦。

代码: 全选

convmv -r -f utf8 -t iso88591 * --notest --nosmart && convmv -r -f gbk -t utf8 * --notest --nosmart
如果下次还有这样的要求,做个alias放在.bashrc里就好啦 :em02

(不过类似操作前最好备份一下,或者拿单个文件试验试验的好,大家要养成这样的习惯阿,拷贝了命令自己随便乱试!) :em05

代码: 全选

顺便提示新手 
convmv:命令 
-r:包括对子目录进行操作 
-f utf8:从utf8编码 
-t iso88591:变成iso88591编码 
*:所有文件
--notest:不试,直接改名 
--nosmart:忽略已经是utf8编码的文件名
最后多谢之前的各位的帮助,尤其是autoxbc的教导。 :em09

不对之处,大家指点。
头像
highwind
帖子: 1362
注册时间: 2008-09-05 23:31
系统: LinuxMint17

Re: 有什么命令可以把一个字符串转换编码的呀?

#20

帖子 highwind » 2010-03-14 23:22

代码: 全选

nautilus-filename-repairer
终极解决法 :em05
chu887
帖子: 116
注册时间: 2008-11-06 22:09

Re: 有什么命令可以把一个字符串转换编码的呀?

#21

帖子 chu887 » 2010-04-26 14:27

为什么我在10.04下 nautilus-filename-repairer跟不就不起作用??? :em20
头像
highwind
帖子: 1362
注册时间: 2008-09-05 23:31
系统: LinuxMint17

Re: 有什么命令可以把一个字符串转换编码的呀?

#22

帖子 highwind » 2010-04-26 18:48

好像0.06版的和10.04配合的挺好呀? :em20
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: 有什么命令可以把一个字符串转换编码的呀?

#23

帖子 BigSnake.NET » 2010-04-26 20:01

代码: 全选

autumncat@autumncat-host ~ $ echo "Í·ºÅ¹«µÐ2.Mesrine.Part2.Public.Enemy.2008.Blu-ray"  | iconv -t ISO-8859-1 | iconv -f GBK
头号公敌2.Mesrine.Part2.Public.Enemy.2008.Blu-ray
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
i_NIX
帖子: 450
注册时间: 2008-02-11 15:46

Re: 有什么命令可以把一个字符串转换编码的呀?

#24

帖子 i_NIX » 2010-04-26 20:13

此帖算是我浏览论坛看到的比较有含量的帖子了
Google Talk群组,请来<雨云>一番!
主题:UbuntuLinux编程科幻、民主、科学等。
添加 [email protected] 为好友(然后say hi,并等待验证)
参见 http://goo.gl/xIpxH

Twitter:http://twitter.com/nixzhu
头像
bzhao
帖子: 252
注册时间: 2008-07-05 2:15
系统: XUbuntu

Re: 有什么命令可以把一个字符串转换编码的呀?

#25

帖子 bzhao » 2013-12-19 12:44

转换结果:头号公敌2.Mesrine.Part2.Public.Enemy.2008.Blu-ray

方法是:
1. convmv -r -f utf8 -t iso88591 "乱码文件名" --notest --nosmart
2. convmv -r -f gbk -t utf8 "乱码文件名2" --notest --nosmart
(乱码文件名2 是通过1转换出来)
Bill Z
stat -c %a filename
\_.\{-}
回复