LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3027|回复: 18

一个建议:增加ISO对中文文件名的支持

[复制链接]
发表于 2005-6-4 16:11:36 | 显示全部楼层 |阅读模式
不知道大家有无遇到过在Linux下刻录刻出来的盘的中文文件,在M$下显示乱码的问题?今天搜了一天,最后找到Turbo中有一个CJK的补丁,现在重新打包cdrecord,不知道可否解决,正在测试中。。

不知fundawang老大对这个补丁有什么看法?
发表于 2005-6-4 16:38:26 | 显示全部楼层
Turbo曾经是对中文支持最好的版本。
回复 支持 反对

使用道具 举报

发表于 2005-6-4 17:09:01 | 显示全部楼层
如果我没有记错的话,以前有人发过这贴,说在K3b下选中Joilet选项就不会有乱码了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-4 17:57:30 | 显示全部楼层
非也,这个问题的解决归根到底是mkisofs中对中日韩双字节编码的处理。即使我们使用官方最新版本的cdrtools和mkisofs,打开Joliet,也是仅能在Linux下面正确显示,而一旦在Windoze下读取依然有问题。

刚才重新用K3B新刻一张数据光盘,刻录时在“强制输入字符编码”一项中自己填写 cp936 (这个在下拉菜单中是没有的),在WinMe下显示中文已没有问题。请看附图。

有兴趣的兄弟可以到这里下载10.1的SRPM包,到这里下载2006.0的SRPM包,自己编译一个。然后做一个试验:先选定几个中文目录或者文件,刻录时打开Joliet,刻一张盘看看效果。。。
然后编译并安装修改好的包之后,重新按我上面的方法试一下,看看有否不同。。。
***************************************************
2005-10-29 更新说明
Mandriva 2006中,gcc4更加严谨了,以致之前其中一个补丁中的小小问题会令10.1的SRPM包编译出错,为此2006的SRPM包仅仅是修正了这个小问题,同时也对依赖性做了进一步的明确。
要说明的一点,自2.6.8.x以后的版本的官方内核,倘若使用官方的cdrtools来刻录,都会出现非root用户无法刻录的问题。。这个在众多论坛上已经人所共知。为什么Mandriva可以?呵呵~答案我就不说了,google肯定有的。不过,我还是奉劝一句,刻录的时候,还是用root身份来刻吧。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2005-6-5 14:20:43 | 显示全部楼层
给这个主题加精华好吗?以后方便检索啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-5 21:16:05 | 显示全部楼层
忘记了给出我用K3B刻录时选定的设置,请见附图。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2005-6-6 08:20:26 | 显示全部楼层
要从根本上解决问题必须为mkisofs打补丁,cdrecord不能解决根本问题,k3b仅仅是cdrecord的前端,有兴趣的可以做个实验,在win下用winiso做一个包含中文文件名的iso,用未打补丁的cdrecord刻录一张光盘,不需要添加cp936选项,在win下与linux下都能很好地显示文件名。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-6 10:11:13 | 显示全部楼层
嗯,这个包就已经对mkisofs打了补丁的了。在MDK中,mkisofs是cdrecord的一个子包。而且,现在可以做的就是在Linux下做出能够能被Win和Linux都共同识别的光盘,这有两层意思。

第一:可以直接做支持中文名字的iso文件;第二,可以直接用K3B或者其他前端做自己的光盘,并且做出的光盘直接就很好地支持中文名。

其实这两点本质一样,归根到底就是mkisofs能够很好地解决中日韩双字节的编码。
回复 支持 反对

使用道具 举报

发表于 2005-6-6 11:08:31 | 显示全部楼层
我把cdrecord-CJK-2.01-1.1.101mdk.src.rpm放在我的主目录下面,双击安装后在我的主目录下面生成了一堆文件:
cdda2wav-logo.xpm                      cdrtools-2.01a32-dvd.patch.bz2
cdrecord-2.01-CAN-2004-0806.patch.bz2  cdrtools-2.01a38-rawio.patch.bz2
cdrecord-CJK-2.01-1.1.101mdk.src.rpm   cdrtools-2.01a38-warnings.patch.bz2
cdrecord-logo.xpm                      cdrtools-2.01-mdk-NLS-2bytes.patch.bz2
cdrecord.spec                          cdrtools-2.01.tar.bz2
cdrtools-2.01a27-writemode.patch.bz2   cdrtools-security.patch
cdrtools-2.01a28-o_excl.patch.bz2      mkisofs-logo.xpm
然后做什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-6 13:17:09 | 显示全部楼层
这是一个SRPM包,那就是说需要自己编译。下载后先解压缩,之后用根用户身份使用如下命令:

rpm --rebuild cdrecord-CJK-2.01-1.1.101mdk.src.rpm

编译成功后,你就得到自己的二进制RPM包了。
如果按默认的设置编译,你会在 /usr/src/RPM/RPMS/i586/ 目录下看到你编译的包。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表