服务器端:windows 2000 server 中文版 codepage: cp936
现象:在GNOME的nautilus中或者在终端中使用smbclient均可以看到中文目录,无需额外配置。但如果使用smbmount命令,则中文目录和文件名均为乱码。尝试了多种iocharset和codepage的组合也无效。实在让人感到郁闷。请大家看看是什么地方的问题,谢谢!
代码: 全选
#中文始终显示乱码
sudo smbmount //server/shared /localshared -o username=abc workgroup=workgroup iocharset=utf8 codepage=cp936
sudo smbmount //server/shared /localshared -o username=abc workgroup=workgroup iocharset=utf8 codepage=cp936 unicode
sudo smbmount //server/shared /localshared -o username=abc workgroup=workgroup iocharset=unicode codepage=cp936
代码: 全选
#所支持的locale
$locale -a
C
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
POSIX
zh_CN.utf8
zh_HK.utf8
zh_SG.utf8
zh_TW.utf8
大概找到了原因:
在nautilus中可以正常显示中文是因为调用的是smbclient命令,对client/server的编码支持比较好。
在终端中无法正常显示是因为client的iocharset实际上是en_CA.utf8,而server的codepage是cp936,smbmount命令似乎无法在这两者进行正常转换。mount成功后,在client端建立的中文目录名在server显示则是乱码。
要解决这个问题要么将client的locale设置成zh_CN.utf8,要么将server端的locale设置成utf8
不知道这算不算是bug?