红联Linux门户
Linux帮助

samba的中文问题

发布时间:2011-06-20 09:16:58来源:红联作者:gogo11
俺是转贴的,^_^
针对中文简体windows来说,codepage=cp936
-------------------------------------------------------------------------------------------------
windows分很多语言,繁体的就是big5,简体一般为gb2312
伺服器端?言?定??有三?(/etc/samba/smb.conf中???有?三???,需自行加入):
display charset = UTF8
dos charset = cp950
unix charset = UTF8
?出?息到 stdout,stderr (也就是在伺服器自己的?幕上?示?息)?所用的??。????是指?出?息,通常?定成?底下的unix charset??相同。

dos charset = cp950
DOS客?端?接到伺服器?,所使用的??。???果不管是Unix或windows都使用?????定,在?定?伺服器?中文Windows存取?,?使用??新的??,在smb.conf?面?有 950 ????,一定是 "cp950",google上面有些文章?950,少了cp ??字元,那是不正?的,在 testparm ?查??失?。

unix charset = UTF8
本?Linux?案系?所使用的??方式。Samba必?要知道本?的??方式,才能正?的??要送?客?端的?息,????在一般情?下,??您 Linux 伺服器系???相同,也就是 /etc/sysconfig/i18n?所?定的??方式。


?例1.Linux作?系???? big5 (?句??,/etc/sysconfig/i18n?面所?定的????是 Big5 ?),而Samba Server要分享?案?繁?中文的 Windows 系??,?伺服器?如下?定:
display charset = cp950
dos charset = cp950
unix charset = cp950

?例2.Linux作?系????Unicode,而Samba Server要分享?案?繁?中文的 Windows 系??,?伺服器?如下?定:
display charset = UTF8
dos charset = cp950
unix charset = UTF8

??的?,在一般情?下,"display charset"?"unix charset"???定成?作?系???相同(/etc/sysconfig/i18n),"dos charset" ???定成 cp950即可,特殊情??整客?端的??方式也能正?接收??。

?1:"client code page = 950" ????在 FC4版本以 testparm ???,已?不存在,故?使用上面三??言??。

?2:Windows ?不是使用 Unicode 的??,微?有自己的一套方法解?多?言?示??,在繁?中文上 windows 是使用 big5 ??(若用程式抓??法出?看?得到 MS950,??到 Linux 上的 CP950,?者都是 big5 ??),?然在某些情?下似乎可以?示多?言,那是因?作?系?所使用的"字集"有囊括某些其他?言的文字,而"字集"?"??"在 Unicode 的定?上是分?的,在此不多?述,以免大家??些名?混淆,若?此有?趣的朋友可以一起??。



Client 端??的?言??也有三?(使用 mount 或 smbmount 指令???,加在 -o ??後面):
iocharset = UTF8
codepage = cp950
unicode

iocharset = UTF8 指定本???所使用的??方式。????在一般情?下,??您 Linux 客?端主?所使用的??方式相同,也就是 /etc/sysconfig/i18n ?所?定的??方式。
codepage = cp950 指定?端伺服器送出?息的??方式。
unicode 使用 unicode ??伺服器通?。


?例1.?Linux?作客?端,??另一台 Linux Samba Server,而? Server 中的 "dos charset" ?定成 cp950 ?,?如下??:

mount -t smbfs -o username=my_name,password=my_pass,codepage=cp950 //xxx.xxx.xxx.xxx/share_floder /dest


?例2.?Linux?作客?端,??另一台 Linux Samba Server,而? Server 中的 "dos charset" ?定成 UTF8 ?,?如下??:

mount -t smbfs -o username=my_name,password=my_pass,codepage=UTF8 //xxx.xxx.xxx.xxx/share_floder /dest


?例3.?Linux?作客?端,??另一台繁?中文 Windows 系?的分享目??,?如下??:

mount -t smbfs -o username=my_name,password=my_pass,codepage=cp950 //xxx.xxx.xxx.xxx/share_floder /dest

?於??的方式,端看 Samba Server 所送出?的字型??是何???(dos charset ??),客?端只要使用相同的??接收便能正??示。而使用 iocharset=cp950 的??在此?例中?失?(是?示字型失?,不是??失?)。

附上我的SAMBA的语系:
/etc/sysconfig/i18n
LANG="en_US.UTF-8"
SUPPORTED="zh_HK.UTF-8:zh_HK:zh:zh_CN.UTF-8:zh_CN:zh:zh_SG.UTF-8:zh_SG:zh:zh_TW.
UTF-8:zh_TW:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"

/etc/samba/smb.conf
display charset = UTF8
dos charset = cp950
unix charset = UTF8

这样的设置,我的环境是有REDHAT ENT 5.1 客户是winxp简体和繁体和英文版,其中英文版选的内码是中文RPC。不管从哪个电脑上传文件到SAMBA,看中文都没有问题。
文章评论

共有 1 条评论

  1. ncct 于 2011-06-20 11:01:18发表:

    路过