linux下将中文文件名文件cp到windows目录下后文件名乱码问题的解决
2010-12-02 17:46
1056 查看
linux中,我的LC_ALL环境是zh_CN.gbk。
当我把中文文件名文件cp到windows的fat32盘下后,重起进入windows后发现文件名全是乱码。
首先google,baidu了下,发现都推荐用convmv,这个工具是用perl编写的,确实非常好用的工具,不过在我这里它不适合。
----------------------------------------------------我是华丽的分割线------------------------------------------------
还是拿具体例子来说话,比如说文件,政治.txt,先说下造成乱码的根本原因,在windows下用winhex查看后,发现,
那些文件名确实是gbk编码,只不过,编码给分开了。
政治,gbk编码 D5FE D6CE ,可是在硬盘上存储的时候却变成了,D500 FE00 D600 CE00。就算没有多出这些00,我自己手动
改成 D5FE D6CE也不可以,因为windows下用的是unicode编码。
----------------------------------------------------我是华丽的分割线------------------------------------------------
尝试下在linux中用convmv把gbk转成unicode看看,不过之前,先用hexedit看下。
无法转换成unicode,ucs-2le或者utf-16le,因为linux不支持,这个编码的文件名...
结果发现,hexedit不能看文件名,它只是看内容的。
-------------------------------------------------我是华丽的分割线---------------------------------------------------
从linux再在ntfs下面写个文件名看看,是不是也是乱码。
这个发现不是乱码,并且用这个方法成功解决问题。
解决方法:把乱码的文件和文件夹,在linux下,从fat32盘,cp到/root,然后再mv到ntfs盘,就ok了~。
-------------------------------------------------我是华丽的分割线----------------------------------------------------
问题总结:
自己费了好多时间,10几个小时,研究怎么在fat32上面恢复中文,除了手工自己修改外,
在linux下面用convmv怎么都不行。因为linux内置支持utf-8,可是不支持utf-16。
所以在最后执行rename 操作时,识别不了utf-16的文件名而报错。
不过,倒是因为这个问题,我对编码的各种方式和区别,还有转化方法,有了更好的认识~
-------------------------------------------------我是华丽的分割线----------------------------------------------------
原因分析:
在挂载 我的fat32盘时,mount设置了编码方式为gbk. ntfs没有发现用什么设置,
难道这个是原因?再进入linux自己研究下。
当我把中文文件名文件cp到windows的fat32盘下后,重起进入windows后发现文件名全是乱码。
首先google,baidu了下,发现都推荐用convmv,这个工具是用perl编写的,确实非常好用的工具,不过在我这里它不适合。
----------------------------------------------------我是华丽的分割线------------------------------------------------
还是拿具体例子来说话,比如说文件,政治.txt,先说下造成乱码的根本原因,在windows下用winhex查看后,发现,
那些文件名确实是gbk编码,只不过,编码给分开了。
政治,gbk编码 D5FE D6CE ,可是在硬盘上存储的时候却变成了,D500 FE00 D600 CE00。就算没有多出这些00,我自己手动
改成 D5FE D6CE也不可以,因为windows下用的是unicode编码。
----------------------------------------------------我是华丽的分割线------------------------------------------------
尝试下在linux中用convmv把gbk转成unicode看看,不过之前,先用hexedit看下。
无法转换成unicode,ucs-2le或者utf-16le,因为linux不支持,这个编码的文件名...
结果发现,hexedit不能看文件名,它只是看内容的。
-------------------------------------------------我是华丽的分割线---------------------------------------------------
从linux再在ntfs下面写个文件名看看,是不是也是乱码。
这个发现不是乱码,并且用这个方法成功解决问题。
解决方法:把乱码的文件和文件夹,在linux下,从fat32盘,cp到/root,然后再mv到ntfs盘,就ok了~。
-------------------------------------------------我是华丽的分割线----------------------------------------------------
问题总结:
自己费了好多时间,10几个小时,研究怎么在fat32上面恢复中文,除了手工自己修改外,
在linux下面用convmv怎么都不行。因为linux内置支持utf-8,可是不支持utf-16。
所以在最后执行rename 操作时,识别不了utf-16的文件名而报错。
不过,倒是因为这个问题,我对编码的各种方式和区别,还有转化方法,有了更好的认识~
-------------------------------------------------我是华丽的分割线----------------------------------------------------
原因分析:
在挂载 我的fat32盘时,mount设置了编码方式为gbk. ntfs没有发现用什么设置,
难道这个是原因?再进入linux自己研究下。
相关文章推荐
- linux下将中文文件名文件cp到windows目录下后文件名乱码问题的解决
- Linux_解决windows传送到linux下中文文件名及文件内容乱码问题
- 解决windows传送到linux下中文文件名及文件内容乱码问题
- 解决windows传送到linux下中文文件名及文件内容乱码问题
- 解决在linux下用eclipse打开windows文本文件产生中文乱码的问题
- 俺的gVim配置文件(解决了菜单栏,右键菜单和提示框中文乱码问题)(for windows,linux下应该也没问题)
- 解决在windows目录下的文件到ubuntu系统下出现的中文乱码问题
- 解决在LINUX下打开windowsTXT文件乱码的问题
- linux下打开windows txt文件中文乱码问题
- 解决PHP在IE中下载文件,中文文件名乱码问题
- java文件下载的中文文件名乱码问题的解决
- 【成功解决】ubuntu 12.04 解压 zip 7z rar jar 文件,文件名中文乱码的问题
- 解决在LINUX下打开windowsTXT文件乱码的问题
- linux下打开windows txt文件中文乱码问题
- Ubuntu下解决zip 文件中中文文件名乱码的问题
- iOS 文件下载 (AFNetwork 三方框架 文件名中文字符乱码问题解决)四
- 解决FAT32文件系统分区中文文件名在Linux下显示乱码
- 用SecureCRT客户端远程linux,查看文件出现中文乱码问题解决
- windows7下gvim打开UTF8无bom文件中文乱码问题的解决
- CodeMan的Linux问题解决集锦:Linux打开阅读chm文件和解决chm中文乱码的方法