看板Linux
标 题Re: 请问大量修改乱码档名的方法?
发信站A poorly-installed InterNetNews site (Tue Jan 23 04:22:55 2007)
转信站ptt!ctu-reader!ctu-gate!news.nctu!news.nsysu!news.mksh.phc!news.ccns.n
阿培仔 wrote:
> ※ 引述《willie (Debian Rock!!)》之铭言:
>> ※ 引述《tomhuang (阿培仔)》之铭言:
>>> 我这边有一堆档名乱码的档案,
>>> 查了一下,发现应该是 GB2312 档名,直接被当成 BIG5 档名,
>>> 以 Samba 存入伺服器硬碟後变成 UTF-8 档名。
你这个不是单纯转换编码的问题。
>>> 可是…接下来我就不知道该怎麽做了…
>>> 请问如何快速改好这些档名?
>> 要改档名
>> 建议使用convmv,操作看一下manpage,和iconv用法差不多:)
>
> 我用下面的指令, 发现不行:
> convmv -i -f UTF-8 -t BIG5 *PDF
>
> 出现了下面的错误讯息:
> big5-eten doesn't cover all needed characters for: "./H[1].264弝晤钨陔梓袧挚俶夔煦昴.PDF"
> big5-eten doesn't cover all needed characters for: "./IP郪畦撮扲挚婓弝秞换怀笢腔茼蚚.PDF"
> :
> :
> big5-eten doesn't cover all needed characters for: "./霜羸极撮扲挚婓萸畦VOD笢腔茼蚚.PDF"
> big5-eten doesn't cover all needed characters for: "./霜羸极撮扲挚恅璃迹宒.PDF"
> To prevent damage to your files, we won't continue.
> First fix errors or correct options!
>
> 应该是因为档名里面有一些字超出范围, 所以 convmv 不准继续执行..
> 那些超出范围的字, 可以放弃它们吗? 补上其他符号也行, 能不能强迫执行呢??
> -
我的桌面是 UTF8 环境。
除了步骤 6 之外,都是在 zh_TW.UTF-8 的 gnome-terminal 终端机中。
1,制作一个 500K 的档案,档名 /mnt/Temp_Block:
cd /mnt
dd if=/dev/zero of=Temp_Block bs=512 count=1024
2,档案是要当作 "虚拟硬碟" 用的,所以要 mkfs。
mkfs.ext2 Temp_Block
3,做一个目录,用来做挂载点。
mkdir TB
4,指定转码挂载:
mount -o loop,iocharset=big5,codepage=gb2312 Temp_Block TB/
5,把档案 copy 进 /mnt/Temp_Block。
6,另外开 gnome-terminal , 「终端机」-「设定字元编码」设为 gb2312, 并且执行 "export LC_ALL=zh_CN"。
在这里面 "ls /mnt/TB/ |autob5 -i utf8 -o big5 > ~/Filename_List.gb.txt" 把档名存起来。
7,到其他终端(utf8),可以使用 "cat ~/Filename_List.gb.txt |autob5 -i gb -o utf8" 得到 utf8 显示。
ps., 那些档案名称再转成繁体大约是:
264视编码新标准及性能分析、IP组播技术及在视音传 中的应用、
流媒伐技术及在点播VOD中的应用、流媒伐技术>及文件格式 。