解決無法上傳中文檔名之檔案至FreeNAS網芳的問題

學校的FreeNAS0.69RC1)原本最主要的規劃是當做所有主機資料的備份伺服器,可是現在得再多一項任務,儲存學校一些紀錄影片,雖然草國已經有osTube影音平台,但有些比較重要的影片還是需要以mpeg檔保留下來,而這些mpeg檔都非常龐大,所以只好往FreeNAS主機存放,最方便的方法當然就是以網芳(網路磁碟機)的方式上傳資料檔案。

FreeNAS可以開啟CIFS/SMB/網芳服務,原本的設定畫面如下:

2009-04-01_200914

Dos字元編碼是CP850,Unix字元編碼是UTF-8 可是這樣的編碼設定,在我學校的網路環境裡上傳有中文檔名的資料檔案時卻會產生錯誤訊息,無法上傳,如下圖:

2009-04-01_200820

推測可能是FreeNAS的SMB字元設定有問題,此時想到自己學校另外一台網芳主機samba的Dos字元編碼是CP950,Unix字元編碼是Big-5,可是FreeNAS的SMB 字元設定裡並沒有CP950和Big-5的選項,還是Google一下看看有什麼方法可以解決中文編碼的問題,Google了好久,終於找到一篇網頁紀錄,說明如何將FreeNAS的SMB 字元設定新增CP950和Big-5的選項:

[教學]修改FreeNAS使其檔案系統支援中文編碼 [Archive] – PCZONE 討論區

照著說明指示,修改FreeNAS主機的 /usr/local/www/services_samba.php 設定檔:

258行:在CP850 之前增加CP950

271行:在UTF-8 之前增加BIG-5

2009-04-03_000535

修改完後,設定畫面就新增了CP950和Big-5的選項:

2009-04-01_200413

然後重新啟動CIFS/SMB/網芳服務,測試一下,上傳中文檔名的檔案到FreeNAS網芳資料夾:

2009-04-01_200113

成功!完全沒問題了!

但這種方法可能不是很正統的方法,雖然可行,也僅供參考!因為好像有網友的FreeNAS網芳設定Dos字元編碼CP850,Unix字元編碼UTF-8,但也是正常可以上傳中文檔名的檔案,這我就不知道為何會如此了?小弟才疏學淺,煩請有相關經驗的網友夥伴們指導 一下!

———————————————————————-20090625補充資料

以上提到可以用非正統方法解決網芳中文亂碼問題,但是要補充一點如果重新開機後,FreeNas系統的/usr/local/www/services_samba.php 設定檔會自動復原,也就是說之前修改的設定也都會恢復原狀。

如此每次重新開機不就得再重新修改一次services_samba.php 設定檔嗎?

這裡另外提供一個撇步:將修改好的services_samba.php檔案另存一份到資料碟/mnt/share/的任何目錄裡,這樣這個設定檔就不會被自動還原,系統重新開機時,設定自動執行將這個services_samba.php設定檔在載入網芳服務前先複製到它原有的目錄裡(/usr/local/www/),如此就不用每次開機就必須再重新手動修改設定檔。

設定介面:系統–>進階–>命令列腳本

2009-06-26_000131

命令列中填上: cp -f /mnt/share/config/services_samba.php /usr/local/www/

類別選擇:PreInit 前置初始動作

記得要儲存。

2009-06-26_000701

本篇發表於 網管工作 並標籤為 。將永久鍊結加入書籤。

解決無法上傳中文檔名之檔案至FreeNAS網芳的問題 有 11 則回應

  1. speed45 說道:

    請問怎麼開啟 /usr/local/www/services_samba.php
    還有怎麼樣可以用文字編輯器去開啟

    回覆該留言

    shian Reply:

    使用ssh連線軟體登入freenas,將services_samba.php 下載到桌面,再用文字編輯軟體,例如phpedit 修改檔案後,回存freenas主機

    回覆該留言

  2. freenas初學者 說道:

    不好意思可以請教一下
    關於Freenas如果是用windows內建直接上傳,
    不透過其他ftp軟體,中文字都會出現??
    請問是否有像網芳解決中文是亂碼的方法存在?

    謝謝

    回覆該留言

    freenas初學者 Reply:

    剛剛找到

    另外给灌FREENAS的朋友 若你是要使用FTP功能传档的. 一定会遇到乱码!就是你丢档过去是OK的.但按F5之后
    变成乱码. 各位朋友那有这款情形..请打000000XX……… 有这种情形 请在FTP的"附属参数"
    加上这段" UseEncoding UTF-8 Big5 " ,存档重开机后,就可以让你正常快乐使用中

    回覆該留言

  3. dinno 說道:

    小弟用Freenas 0.7RC1架設學校NAS主機
    使用CIFS網路芳鄰分享,沒有改變編碼設定
    不會有中文亂碼的問題產生
    或許可以直接更新新版本就可以了~~

    另外,使用FTP,例如在「我的電腦」網址中輸入FTP位址
    因為Windows檔案不支援UTF-8編碼
    所以傳到NAS主機上的中文檔名會變成亂碼
    這時
    必須到NAS網頁管理介面,選擇服務→FTP
    在最後一欄的「附屬參數」中
    輸入:UseEncoding UTF-8 Big5
    這樣使用FTP連NAS或用網芳看FTP檔案
    都不會有中文亂碼產生

    提供給大家參考~~

    回覆該留言

    shian Reply:

    非常感謝您分享寶貴的經驗!獲益良多!

    回覆該留言

  4. twdolphin 說道:

    今日測試也是沒有問題的!

    忘了說,我現在採用的版本是0.69.1 Omnius (revision 4554)

    回覆該留言

    james Reply:

    使用修改的方法.在未重開機都正常.但一重新開機就又不見了.又是亂碼了.

    回覆該留言

    shian Reply:

    請看本文章之20090625補充資料說明相關解決方法!

    回覆該留言

  5. twdolphin 說道:

    我的方式是不需要更改CIFS的編碼設定,而是採用FileZilla 3.0以上,勾選支援Unicode檔名編碼來上傳檔案,在網芳看到的名字就沒有問題。但如果採用2.X版連上去檔明顯示就會有問題。

    回覆該留言

    shian Reply:

    感謝分享!這是用FTP傳檔案,如果是直接以網路芳鄰傳檔案的狀況會是如何呢?

    回覆該留言

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

你可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(若看不到驗證碼,請重新整理網頁。)