一、问题描述:
当把windows的文件夹整个目录复制到Linux系统,在Linux下显示所有包括中文的文件或者文件夹都是乱码,samba共享此文件夹,在Windows下通过网络邻居访问也是乱码。
二、解决方法 (以debian为例)
1、查看当前debian使用的locale信息
#locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
LC_CTYPE=zh_CN.UTF-8
...
如果不是UTF-8或者中文的GBK,需要重新配置locale信息
#dpkg-reconfigure locale
2、安装编码转换工具,查看编码,并进行转换
# aptitude install enca convmv
查看一下编码
#ls -l /data/windows/bak | enca
显示如下:
Simplified Chinese National Standard; GB2312
Surrounded by/intermixed with non-text data
在实际转换过程中使用cp936
也可以直接用 # ls -l /data/windows/bak | enconv 可以显示正常的中文
进行转换
首先测试一下
#convmv -f cp936 -t utf8 -r /data/windows/bak
如果没有错误
#convmv -f cp936 -t utf8 -r /data/windows/bak --notest
如果转换成功,直接可以用ls /data/windows/bak 查看到中文文件或者文件夹
3、samba设置
# vim /etc/samba/smb.conf
#======================= Global Settings =======================
[global]
unix charset = UTF-8
display charset = cp936
dos charset = cp936
# /etc/init.d/samba restart
问题解决。 其他Linux版本也可以参照此方法去做了。