LinuxSir.cn,穿越时空的Linuxsir!

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

SAMBA 求救!

[复制链接]
发表于 2007-3-27 11:46:35 | 显示全部楼层 |阅读模式
slakware 11 浏览网络上的windows的中文共享目录乱码!网络上的WINDOWS机浏览本机的samb共享中文正常,本机中文使用正常,
locale设置
LANG=en_US
LC_CTYPE="zh_CN.gbk"
LC_NUMERIC="zh_CN.gbk"
LC_TIME="zh_CN.gbk"
LC_COLLATE="zh_CN.gbk"
LC_MONETARY="zh_CN.gbk"
LC_MESSAGES="zh_CN.gbk"
LC_PAPER="zh_CN.gbk"
LC_NAME="zh_CN.gbk"
LC_ADDRESS="zh_CN.gbk"
LC_TELEPHONE="zh_CN.gbk"
LC_MEASUREMENT="zh_CN.gbk"
LC_IDENTIFICATION="zh_CN.gbk"
LC_ALL=zh_CN.gbk

smb.conf 中 Global Setting

display charset = cp936
unix charset = cp936
restrict anonymous = no
domain master = no
preferred master = no
dos charset = cp936
max protocol = NT
acl compatibility = winnt
ldap ssl = No
server signing = Auto
 楼主| 发表于 2007-3-27 15:15:47 | 显示全部楼层
将smb.conf 中 Global Setting 改为
display charset = UTF8
unix charset = UTF8
dos charset = UTF8

就能在Konqueror中smb://x.x.x.x/看到中文共享目录,
但是这样的话,windows访问本机的smb共享就会乱码,改
回CP936 windows机就能正确显示中文共享,求解,如何
将两个都能设置正确?
回复 支持 反对

使用道具 举报

发表于 2007-3-28 15:47:04 | 显示全部楼层
smb.conf文件只作如下设置就可以了:
[global]
        display charset = utf8
        dos charset = cp936
        unix charset = utf8

display一行是指显示编码,要和你自己的Locale相同,如果是utf8就用utf8
dos一行是指Win32机器访问时的编码,要设为cp936
unix一行是指别的Unix机器访问时的编码,如果用utf8那就设置成utf8。

另:你的Locale最好不要用GBK,很多程序无法识别GBK,用GB2312更好些;如果你不想用utf8的话。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-28 17:15:22 | 显示全部楼层
还是不行,设置
[global]
display charset = utf8
dos charset = cp936
unix charset = utf8
这样本机浏览windows(2000)机中文共享正常,但windows机浏览本机的共享是乱码.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-29 10:14:37 | 显示全部楼层
终于发现原因,原来samba共享的是本地硬盘的NTFS分区,mount的时候没有指定相同的nls所以,samba共享出去2000访问就是乱码x现在改成下面设置,全部OK!linux windows2000能正常双方共享

locale
LANG=en_US
LC_CTYPE="zh_CN.utf8"
LC_NUMERIC="zh_CN.utf8"
LC_TIME="zh_CN.utf8"
LC_COLLATE="zh_CN.utf8"
LC_MONETARY="zh_CN.utf8"
LC_MESSAGES="zh_CN.utf8"
LC_PAPER="zh_CN.utf8"
LC_NAME="zh_CN.utf8"
LC_ADDRESS="zh_CN.utf8"
LC_TELEPHONE="zh_CN.utf8"
LC_MEASUREMENT="zh_CN.utf8"
LC_IDENTIFICATION="zh_CN.utf8"
LC_ALL=zh_CN.utf8

cat /etc/fstab
.
.
/dev/hda1        /mnt/hd/C        ntfs        umask=0,nls=utf8 0   0
/dev/hda5        /mnt/hd/D        ntfs        umask=0,nls=utf8 0   0

smb.conf 中 Global Setting

display charset = cp936
dos charset = cp936
unix charset = utf8
回复 支持 反对

使用道具 举报

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

本版积分规则

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