当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 有个关于移动硬盘内文件名编码转换的问题
帖子发表于 : 2010-07-27 19:48 

注册: 2009-02-18 23:46
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
是个fat32格式的盘,以前用partition magic还是gparted格式化出来的,编码是utf8
后来接在一个简陋的ubuntu(只有fvwm能用,准备重装)上,往里面放东西
那时凭记忆手动mount,忘了加iocharset=utf8,所以mount的默认是iso8859-1
东西放进去了,再连到windows上一看,中文文件名乱码了
于是接回到ubuntu上,mount -o iocharset=iso8859-1的时候,显示文件名正常;mount -o iocharset=utf8的时候,文件名乱码

所以我用utf8编码mount上去,然后用 convmv -f iso-8859-1 -t utf8 -r --nosmart
但是dry run的结果还是mv "...乱码" "...乱码",虽然不是同一个乱码

有人知道为什么吗?


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 有个关于移动硬盘内文件名编码转换的问题
帖子发表于 : 2010-07-27 20:29 

注册: 2009-02-18 23:46
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
那个……
我知道原因了……
from 和 to 反了……
本来我在想,文件写入的时候用的是iso8859-1,所以应该是from iso8859-1 to utf8

其实相反
用mediacoder作比喻(因为前一阵子在用),从逻辑上讲from是“解码器”,to是“编码器”。虽然实际上convmv应该是用from的信息进行编码,用to的信息进行解码……

原始的字串信息用了iso8859-1编码后写入硬盘,然后我用iocharset=utf8(解码)读出,得到乱码
所以要把程序逆转:
先用utf8“编码”得到硬盘内的储存内容(类似于mediacoder把视频文件内容解码成视频流)
然后用iso8859-1“解码”得到原始的字串信息(类似于mediacoder把视频流编码成新格式的文件)

所以是 -f utf8 -t iso8859-1
不过好奇怪,我google出来的关于修正乱码的文章貌似都是 -t utf8 ……难道没人发现刚好相反么??


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译