Linux服務器下有時候會出現下列問題:
(1)通過samba上傳的文件有時候會在FTP或shell裡面無法正常顯示
(2)同時,通過FTP上傳的文件也會在samba裡面無法正常顯示,怎麼回事呢?
原因是他們的字符集不同。
解決辦法:
第一步,確定shell中語言為中文,查看方法
echo $LANG
如果顯示為zh_CN.*****,則基本沒有問題,可跳過此步。如果為en_US.****,則要改為中文,方法為在/etc/sysconfig/i18n 設置
LANG="zh_CN.GBK"、LANG="zh_CN.GB2312"、LANG="zh_CN.GB18030"或者LANG="zh_CN.UTF-8"
或者直接export LANG=zh_CN.GBK,具體方法可參考Linux的一些設置
第二步,也是最關鍵的一步,是改smb.conf設置:在[global]域中加入一下代碼
shell charset= cp936
display charset= cp936
DOS charset= cp936
unix charset= cp936
clIEnt code page = 936
character set = 936
這樣在shell下建立的中文文件名samba可以正常看到,samba建立的中文文件名shell下也可以正常顯示,大部分FTP沒有自己的字符集轉化系統,使用shell的。
所以一般不用特別設置,如果需要,按照這個思路也應該可以的。