作者chiouss (Heart-shaped chant)
看板Linux
標題Re: [問題] vsftpd 中文檔案變亂碼(invalid encoding)
時間Tue May 25 20:41:56 2010
※ 引述《Adama (So Say We All.)》之銘言:
: ※ 引述《MrWind (波西米亞)》之銘言:
: : 對方的系統是 M$-Win7( Win-XP 好像也會有這樣的問題),
: : 使用"檔案總管"直接連線至我的ftp site,然後登入 local user 帳號,
微軟的 IE 或是檔案總管大概都沒有完全遵守 FTP 的 RFC 規範在做設計,所以傳上去的檔案檔名
不正常應該和我前面說的原因差不多。有興趣可以翻看看 ftp server 的 log,應該可以看到 client
送出了哪些指令。
: 那是因為windows xp/7雖然核心支援utf-8,但實際上中文繁體語系
: 卻是使用cp950 (big5擴充)作為預設編碼
該怎麼說呢,Windows 2000 之後核心就已經是 unicode 了,但是為了顧及過去的 ANSI 程式相容性,
對於非 unicode 的程式都會用內建的語系表去做轉碼。而轉碼這種事情不只是針對程式,Windows 的
檔案系統也有做轉碼的動作,為了配合那些過去的 ANSI 程式。
但是檔案轉碼這件事情只有 Windows 是內建、自動的,在其他系統裡面 unicode 和 ansi 並不會自己
互轉,所以造成了很多很多的麻煩,包括 ftp, samba 這些會牽扯到檔名的東西都是一樣。
: 所以不用filezilla強制使用utf-8的話,
: 用"檔案總管"它就會給你傳cp950的檔名上去...
: 至於內容,本來就需要用iconv之類的軟體去轉換編碼
: 即使用filezilla以utf-8上傳也是一樣
--
要開啟新的一道門,任誰都會感覺不安。那不是可恥的事,
真正可恥的是被不安感打敗而不敢開啟那道門。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.153.193
推 Adama:這樣只要原po還是繼續用檔案總管,就算換成pureftpd還是亂碼 05/25 21:01
→ bob770717:我最後總結,請每個user儘量用英文檔名 05/25 21:30
→ bob770717:因為沒辦法限制人家要用程式還是檔案總管連線 05/25 21:30
→ bob770717:只好要求大家互相體諒了 05/25 21:30
推 chiehgriffin:沒錯,還是用英文檔名一切安全 05/25 23:27
推 Adama:我想到是不是可以用bind來掛一個目錄給ftpd用 05/25 23:52
→ Adama:因為bind可以用mount的選項去設定charset 05/25 23:52