Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令
post by tommy @ 22 六月, 2006 12:52
話說自從 FileZilla Server 在支援 UTF-8 之後, 作者似乎很堅持在 RFC 上頭提到, 如果在 FEAT 指令後有送出 UTF8 就表示是使用 UTF8, 而不是一般 FTP Server/Client 上頭所採用的另一種方式: 如果沒收到 OPTS UTF8 ON 指令之前, 就算 FEAT 送出了 UTF8, 還是不會去用到 UTF-8 來傳送資料.

在 FileZilla Server 的第一個支援 UTF-8 的版本上頭, 是變成一個只支援 UTF-8 的程式. 所以你必須使用支援 UTF-8 的 client 來連線. 這個在英文語系國家, 當然不會有什麼問題, 不過... 在我們這種非英文語系的國家, 就變成沒有支援 UTF-8 的 ftp client 完全不能用了.

所以, 作者後來又改了程式, 加上 OPTS UTF8 ON/OFF 的支援. 不過... 預設的情況, 仍是開啟 UTF-8 的支援. 所以... 對我們來說, 雖然進了一小步, 但仍然得到相同的結果, 因為... 不支援 UTF-8 的 ftp client, 根本不知道要送出 OPTS UTF8 OFF 來把 UTF-8 的支援關掉. 且... 真的知道要這樣做的 client, 想必也是已經支援 UTF-8 了吧, 既然支援 UTF-8, 那也不需要去關掉這個功能.

因為這個功能, 在 RFC 上頭, 並沒有詳細的規定,  所以作者似乎為了遵守 RFC 上頭的規定, 並不打算把程式改成與一般的 ftp server 一樣, 一開始不採用 UTF-8, 等到收到了 OPTS UTF8 ON 才去使用 UTF-8.

這個 patch 就是用來修改這個小問題:

diff -Nur source/ControlSocket.cpp source.patch/ControlSocket.cpp
--- source/ControlSocket.cpp Tue May 30 22:06:00 2006
+++ source.patch/ControlSocket.cpp Thu Jun 22 12:10:13 2006
@@ -84,7 +84,10 @@
m_antiHammeringWaitTime = 0;
m_bProtP = false;

- m_useUTF8 = true;
+ if (m_pOwner->m_pOptions->GetOptionVal(OPTION_UTF8_OFF))
+ m_useUTF8 = false;
+ else
+ m_useUTF8 = true;
}

CControlSocket::~CControlSocket()
diff -Nur source/OptionTypes.h source.patch/OptionTypes.h
--- source/OptionTypes.h Thu May 11 20:33:00 2006
+++ source.patch/OptionTypes.h Thu Jun 22 12:31:11 2006
@@ -78,8 +78,9 @@
#define OPTION_SHAREDWRITE 52
#define OPTION_NOEXTERNALIPONLOCAL 53
#define OPTION_ACTIVE_IGNORELOCAL 54
+#define OPTION_UTF8_OFF 55

-#define OPTIONS_NUM 54
+#define OPTIONS_NUM 55

#define CONST_WELCOMEMESSAGE_LINESIZE 75

@@ -148,7 +149,8 @@
_T("SSL Key Password"), 0, FALSE,
_T("Allow shared write"), 1, FALSE,
_T("No External IP On Local"), 1, FALSE,
- _T("Active ignore local"), 1, FALSE
+ _T("Active ignore local"), 1, FALSE,
+ _T("UTF8 OFF by default"), 1, FALSE
};

#endif // OPTION_TYPES_INCLUDED
diff -Nur source/Options.cpp source.patch/Options.cpp
--- source/Options.cpp Sat Apr 29 22:20:12 2006
+++ source.patch/Options.cpp Thu Jun 22 12:08:20 2006
@@ -231,6 +231,10 @@
if (value < 0 || value > 1)
value = 0;
break;
+ case OPTION_UTF8_OFF:
+ if (value < 0 || value > 1)
+ value = 0;
+ break;
}

Init();
@@ -731,6 +735,9 @@
break;
case OPTION_ACTIVE_IGNORELOCAL:
m_sOptionsCache[nOptionID-1].value = 1;
+ break;
+ case OPTION_UTF8_OFF:
+ m_sOptionsCache[nOptionID-1].value = 0;
break;
default:
m_sOptionsCache[nOptionID-1].value = 0;
diff -Nur source/interface/FileZilla server.rc source.patch/interface/FileZilla server.rc
--- source/interface/FileZilla server.rc Sun May 28 22:02:46 2006
+++ source.patch/interface/FileZilla server.rc Thu Jun 22 12:04:00 2006
@@ -552,11 +552,11 @@
LTEXT "Static",IDC_TEXT,7,7,215,38
END

-IDD_OPTIONS_GENERAL DIALOGEX 0, 0, 286, 208
+IDD_OPTIONS_GENERAL DIALOGEX 0, 0, 286, 222
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
- GROUPBOX "Connection settings",IDC_STATIC,7,7,272,48
+ GROUPBOX "Connection settings",IDC_STATIC,7,7,272,66
LTEXT "&Listen on these ports:",IDC_STATIC,13,20,76,8
EDITTEXT IDC_PORT,89,17,89,14,ES_AUTOHSCROLL
LTEXT "List of ports between 1 and 65535.",IDC_STATIC,184,15,
@@ -564,26 +564,28 @@
LTEXT "&Max. number of users:",IDC_STATIC,13,38,73,8
EDITTEXT IDC_MAXUSERS,89,35,40,14,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "(0 for unlimited users)",IDC_STATIC,133,38,67,8
- GROUPBOX "Performance settings",IDC_STATIC,7,60,272,57
- LTEXT "&Number of Threads:",IDC_STATIC,14,75,64,8
- EDITTEXT IDC_THREADNUM,89,73,40,14,ES_AUTOHSCROLL | ES_NUMBER
+ CONTROL "UTF8 OFF by default.",IDC_UTF8_OFF,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,15,55,75,9
+ GROUPBOX "Performance settings",IDC_STATIC,7,77,272,57
+ LTEXT "&Number of Threads:",IDC_STATIC,14,94,64,8
+ EDITTEXT IDC_THREADNUM,89,92,40,14,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "This value should be a multiple of the number of processors installed on your system. Increase this value if your server is under heavy load.",
- IDC_STATIC,135,71,137,33
- GROUPBOX "Timeout settings",IDC_STATIC,7,123,272,78,0,
+ IDC_STATIC,135,90,137,33
+ GROUPBOX "Timeout settings",IDC_STATIC,7,137,272,78,0,
WS_EX_TRANSPARENT
- LTEXT "&Connections timeout:",IDC_STATIC,13,136,69,8
- EDITTEXT IDC_TIMEOUT,88,133,41,14,ES_AUTOHSCROLL | ES_NUMBER
+ LTEXT "&Connections timeout:",IDC_STATIC,13,149,69,8
+ EDITTEXT IDC_TIMEOUT,88,146,41,14,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "in seconds (1-9999, 0 for no timeout)",IDC_STATIC,137,
- 136,135,8
- LTEXT "No &Transfer timeout:",IDC_STATIC,13,155,68,8
- EDITTEXT IDC_TRANSFERTIMEOUT,88,152,41,14,ES_AUTOHSCROLL |
+ 149,135,8
+ LTEXT "No &Transfer timeout:",IDC_STATIC,13,168,68,8
+ EDITTEXT IDC_TRANSFERTIMEOUT,88,165,41,14,ES_AUTOHSCROLL |
ES_NUMBER
LTEXT "in seconds (1-9999, 0 for no timeout). This value specifies the time a user has to initiate a file transfer.",
- IDC_STATIC,137,148,135,26
- LTEXT "L&ogin timeout:",IDC_STATIC,13,184,45,8
- EDITTEXT IDC_LOGINTIMEOUT,88,180,41,14,ES_AUTOHSCROLL | ES_NUMBER
+ IDC_STATIC,137,161,135,26
+ LTEXT "L&ogin timeout:",IDC_STATIC,13,197,45,8
+ EDITTEXT IDC_LOGINTIMEOUT,88,193,41,14,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "in seconds (1-9999, 0 for no timeout). This value specifies the time in which a new user has to login.",
- IDC_STATIC,137,175,136,26
+ IDC_STATIC,137,188,136,26
END

IDD_OFFLINEASK DIALOG 0, 0, 147, 89
diff -Nur source/interface/OptionsGeneralPage.cpp source.patch/interface/OptionsGeneralPage.cpp
--- source/interface/OptionsGeneralPage.cpp Thu Mar 24 18:42:14 2005
+++ source.patch/interface/OptionsGeneralPage.cpp Thu Jun 22 11:58:23 2006
@@ -42,6 +42,7 @@
//{{AFX_DATA_INIT(COptionsGeneralPage)
m_MaxUsers = _T("");
m_Port = _T("");
+ m_bUTF8OFF = FALSE;
m_Threadnum = _T("");
m_Timeout = _T("");
m_NoTransferTimeout = _T("");
@@ -57,6 +58,7 @@
DDX_Text(pDX, IDC_MAXUSERS, m_MaxUsers);
DDV_MaxChars(pDX, m_MaxUsers, 9);
DDX_Text(pDX, IDC_PORT, m_Port);
+ DDX_Check(pDX, IDC_UTF8_OFF, m_bUTF8OFF);
DDX_Text(pDX, IDC_THREADNUM, m_Threadnum);
DDV_MaxChars(pDX, m_Threadnum, 2);
DDX_Text(pDX, IDC_TIMEOUT, m_Timeout);
@@ -145,6 +147,7 @@
void COptionsGeneralPage::LoadData()
{
m_Port = m_pOptionsDlg->GetOption(OPTION_SERVERPORT);
+ m_bUTF8OFF = m_pOptionsDlg->GetOptionVal(OPTION_UTF8_OFF) != 0;
m_Threadnum.Format("%d", m_pOptionsDlg->GetOptionVal(OPTION_THREADNUM));
m_MaxUsers.Format("%d", m_pOptionsDlg->GetOptionVal(OPTION_MAXUSERS));
m_Timeout.Format("%d", m_pOptionsDlg->GetOptionVal(OPTION_TIMEOUT));
@@ -155,9 +158,10 @@
void COptionsGeneralPage::SaveData()
{
m_pOptionsDlg->SetOption(OPTION_SERVERPORT, m_Port);
+ m_pOptionsDlg->SetOption(OPTION_UTF8_OFF, m_bUTF8OFF);
m_pOptionsDlg->SetOption(OPTION_THREADNUM, atoi(m_Threadnum));
m_pOptionsDlg->SetOption(OPTION_MAXUSERS, atoi(m_MaxUsers));
m_pOptionsDlg->SetOption(OPTION_TIMEOUT, atoi(m_Timeout));
m_pOptionsDlg->SetOption(OPTION_NOTRANSFERTIMEOUT, atoi(m_NoTransferTimeout));
m_pOptionsDlg->SetOption(OPTION_LOGINTIMEOUT, atoi(m_LoginTimeout));
-}
\ No newline at end of file
+}
diff -Nur source/interface/OptionsGeneralPage.h source.patch/interface/OptionsGeneralPage.h
--- source/interface/OptionsGeneralPage.h Sun Jun 6 18:35:46 2004
+++ source.patch/interface/OptionsGeneralPage.h Thu Jun 22 11:55:52 2006
@@ -66,6 +66,9 @@
// HINWEIS: Der Klassen-Assistent f�gt hier Member-Funktionen ein
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
+
+public:
+ BOOL m_bUTF8OFF;
};

//{{AFX_INSERT_LOCATION}}
diff -Nur source/interface/resource.h source.patch/interface/resource.h
--- source/interface/resource.h Wed Mar 8 18:02:38 2006
+++ source.patch/interface/resource.h Thu Jun 22 11:54:21 2006
@@ -257,6 +257,7 @@
#define IDC_SHAREWRITE 1197
#define IDC_CHECK1 1198
#define IDC_ACTIVE_IGNORELOCAL 1199
+#define IDC_UTF8_OFF 1200
#define ID_ACTIVE 32768
#define ID_DIRMENU_ADD 32769
#define ID_DIRMENU_REMOVE 32770
@@ -304,7 +305,7 @@
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 167
#define _APS_NEXT_COMMAND_VALUE 32805
-#define _APS_NEXT_CONTROL_VALUE 1200
+#define _APS_NEXT_CONTROL_VALUE 1201
#define _APS_NEXT_SYMED_VALUE 1228
#endif
#endif
 

可以到這兒抓這個 patch, 與使用這個 patch 所做的版本:

http://www.teatime.com.tw/~tommy/mypatch/fzs_use_utf8_off_by_default.patch
http://www.teatime.com.tw/~tommy/FileZillaServer.zip  

另外, 在 FileZilla 上頭, 對於伺服器是 FileZilla Server 時, 並不會送出 OPTS UTF8 ON 指令. 所以,  我們也必須修改 FileZilla 才能支援上頭修改過的伺服器:

diff -Nur source/FtpControlSocket.cpp source.patch/FtpControlSocket.cpp
--- source/FtpControlSocket.cpp Fri May 26 14:24:30 2006
+++ source.patch/FtpControlSocket.cpp Thu Jun 22 12:39:06 2006
@@ -527,7 +527,7 @@
m_Operation.nOpState = CONNECT_CLNT;
return;
}
- if (m_bUTF8 && !m_isFileZilla)
+ if (m_bUTF8)
{
// Handle servers that disobey RFC 2640 that have UTF8 in the FEAT
// response but do not use UTF8 unless OPTS UTF8 ON gets send.
 

這個 patch 應該可以解決這個問題. 可以到這兒抓這個 patch, 與使用這個 patch 加上其他之前我所做的 patch 的版本:

http://www.teatime.com.tw/~tommy/mypatch/fz2224_always_send_opts_utf8_on.patch
http://www.teatime.com.tw/~tommy/filezilla.zip


2006/06/23: 剛打完這篇就斷線 30 個小時左右.... 作者目前仍堅持我的改法會違返 RFC 2640 的規範, 而他認為 server 的實作不應該違反 RFC (可是.... 之前那麼多年都不遵循 RFC 2640 了... 為什麼現在不能提供一個與之前相容的模式, 讓使用者自行去決定要不要採用?), 有興趣的人, 可以參與這篇討論, 看看能不能說服作者吧.
Del.icio.us Furl HEMiDEMi Technorati MyShare
commons icon [1] FileZilla.zip 好像還是有問題耶 [ 回覆 ]

無法順利解壓縮, 第二個檔案解不出來耶

commons icon [2] 可以下載了,謝謝!! [ 回覆 ]

之前可能是 Cache 使我老是抓到有問題的檔案。
總之,現在OK了。
謝謝你了!!!

commons icon [3] [ 回覆 ]

sorry, 我的 filezilla 的設定檔似乎有點問題, 會直接做續傳的動作, 所以這個檔案沒傳好. (奇怪... 查了半天不知道為什麼, 最後照著沒問題的設定檔搬一下檔案內的位置就好了, 真是奇怪?)
我剛剛有重傳一次.

commons icon [4] [ 回覆 ]

不知是不是 tommy 兄 有到我那留言呢?如果是的話,冒昧在此請教一些問題:

請教一下,那用 IE 來上傳檔案時,IE 會送出 opts utf8 on 給 FileZilla Server / zFTP Server,但是卻又不是用 UTF8 編碼來傳檔案 是嗎?

我覺得撇除 FileZilla Server 龜毛堅持 UTF8 編碼,其實 我一開始的問題 就應該是出在用 Internet Explorer 上傳檔案的關係,是吧?

commons icon [5] [ 回覆 ]
1. 我們看不到 IE 的 source, 所以不確定它是怎麼實作這部份的. 不過在 IE 的設定中有一個 Always send URLs as UTF-8 的這個項目, 也許選取後, 連 ftp 的 URL 也是一定會使用 UTF-8 來傳送吧. 2. zFTP server 對於 UTF-8 的實作, 據說不是很完整, 不知道目前有沒有改進了. 總之, ftp 這協定很舊了, 在一開始沒考慮的不同語系之間的問題, 後來才有個 RFC-2640 出現, 不過... 如果完全依照這個 RFC 製作的 server (好像就只有 FileZilla Server), 會發生只能與支援 RFC-2640 或使用 UTF-8 的 client 互相溝通. (多數的 server 都仍維持預設不相容於 RFC-2640 的作法, 等收到 opts utf8 on 才會啟用 UTF-8 的支援) 如果沒有 RFC-2640 的話, ftp server/client 兩邊都必須使用相同的語系來傳送檔名, 才能正常使用. 而有了 RFC-2640, 多了一個可以用 UTF-8 來傳檔名的作用. (應該是說修改過後, 使用 opts utf8 on 啟用 UTF-8 支援的 server, 如果是像 FileZilla Server, 反而只剩下能使用 UTF-8 的 client 可以連線)
commons icon [6] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

Hi, Tommy

I wrote to the author about this issue. but he insist that the UTF-8 should be adopted as default. Even worse, he plan to remove the opts utf8 off in the future. The following is part of his reply:

"In a future version of FileZilla Server I'll remove the OPTS UTF8 OFF command, I think the grace period to update broken clients has been long enough."

Hope the new RFC will be adopted by all the ftp clients soon.

commons icon [7] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

anyway, it's open source project, we still can patch it by ourself.

commons icon [8] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

大大!小弟最近在架FTP伺服器,而使用者都是本公司的一堆小職員,她們都只會用IE連,於是我用filezilla架起來之後,發現大家無法上傳超過5個中文字以上的檔案用IE,而我找了好多文章,終於找到這篇,我在家測試好像抓了你的SEVER到資料夾就能上傳中文檔名了用IE,而Patch檔要怎麼用,抱歉我真的不知道.是否有教學文章呢!感謝您

commons icon [9] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

patch 怎麼用? 我想你要自己 Google 找看看吧. 我也不知道怎麼說.
不過, 通常不知道 patch 怎麼用, 應該也不會自己由 source code 去 build 一個執行檔出來吧.

如果你沒有打算自己用 source code 做出自己的 FileZilla Server 版本, 就抓這兒的版本就可以了.

如果要新一點的版本, 自己到 http://sourceforge.net/projects/filezillapv 去抓就可以了.

commons icon [10] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

抱歉拉>

commons icon [11] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

抱歉拉~小弟太淺,剛碰..
真的不會 source code 去 build 一個執行檔.

打擾你了,目前我全部都架好了,只差在大家用IE連我的伺服器,上傳檔案中文檔名不能超過五個字....請問這個問題是不是沒辦法解決QQ,我爬了很多文,似乎沒有解決的辦法..不知道在這邊能不能找到答案~ 感謝您!!!抱歉耽誤你時間

commons icon [12] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

200 type set to I
200 port command succeful
150 opening data channel for file transfer

用IE上傳檔案 檔名中文超過5個字 都會有這問題>

commons icon [13] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

請去問 MS 吧.
使用正常的 ftp client 都不會有這個問題.
基本上, 在我的測試中 (非 IE, 我不知道怎麼用 IE 上傳, 我是用檔案總管試的), 只要有中文的都可能失敗, 與檔案長度沒什麼關係 (有些不會有錯誤訊息, 不過也沒真的上傳).
由 FileZilla Server 的 console 來看, 會告知 FileZilla Server 要使用 UTF-8, 不過上傳時給 FileZilla Server 的檔名是亂碼, 同樣一個檔名, 在後來的刪除指令中, 又不是亂碼.
我想那是 MS 程式的問題.

commons icon [14] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

我成功ㄌ!!!!!!!

只要多增一個anonymous 的使用者 別設定密碼

就連多少次 都不會變慢了!!!

filezilla server 灌好都沒有設定anonymous

可能這就是主因!!!

commons icon [15] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

版主,您好。
我也是遇到FileZilla Server安裝好之後,
CuteFTP等client端登入後,中文顯示亂碼的問題,
下載了以下兩個檔案後,卻不曉得如何使用耶;
http://www.teatime.com.tw/~tommy/mypatch/fzs_use_utf8_off_by_default.patch
http://www.teatime.com.tw/~tommy/FileZillaServer.zip
可以請版主解說一下嗎?非常感謝。

commons icon [16] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

把那個 zip 裡頭的執行檔取代你安裝的 FileZilla Server 目錄裡頭的檔案就可以了.

commons icon [17] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

感謝版主的回覆,
不過似乎是不適用當前版本的FileZilla Server,
(跑出錯誤訊息,我也看不太懂說。)
我再找找有沒有合適的patch好了,謝謝您。

commons icon [18] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

錯誤? 不能 copy? 也許你的 filezilla service 沒有停掉, 無法覆蓋該執行檔吧.
別的 patch? 印象中應該只有這一個吧.

如果不知道怎麼用, 建議直接換用 FileZilla Client 來使用就好了, 至少這兩者搭配不需要任何更改就應該可以正常使用了.

commons icon [19] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

版主你好,

你放在SourceForge上的0.9.25 patch的版本, 顯示是0.9.24, 請問是正確的嗎?

commons icon [20] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

不知道你是那邊看到 0.9.24?
如果是 patch 的那個文字檔, 那個由 0.9.18 開始就沒改過, 都是同一個檔案就可以修改.
如果是 patch 過的那個執行檔, 怎麼看出是 0.9.24 呢? 同樣的方式看官方沒修改的版本應該也一樣吧. 我看過 source code 裡頭的 .rc 檔案, 版本的定義有幾個地方, 有的寫 0,9,25,0, 有幾個是 0,9,24,0, 也許是作者本來就沒改到吧.

commons icon [21] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

剛剛試了一下, 連線時出現的那個版本是 0.9.24 沒錯. 不過官方的 0.9.25 裡頭的執行檔也是同樣的情形.

commons icon [22] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

你好~我用的版本是FileZilla_Server-0_9_31
我也去這裡http://sourceforge.net/projects/filezillapv
下載了filezilla_server_0.9.31_patched_version_20090304來用

但是我的FTP仍然不能傳送中文檔名,為什麼啊?

commons icon [23] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

對了!我是用IE時發生的問題,因為客戶要傳檔可能常是用IE!

commons icon [24] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

請自己在 command prompt 下頭用 ftp 指令去試吧.
也許是 IE 的問題 (在 IE 自己選擇不同的 encoding, 看看那個可以用吧), 也許是沒有真的換掉該執行檔.

commons icon [25] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

請問有最新的0937patch檔嗎?

另外請教在我的電腦網址列直接輸入ftp://xxx.xxx.xxx.xxx

可抓中文檔案但是無法上傳中文檔名,

ptach後 是否能解決此一問題呢?

謝謝

commons icon [26] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

0.9.37 剛放上去, 請到 filezillapv 去抓.
https://sourceforge.net/projects/filezillapv/

你的問題應該是與這有關沒錯, 因為 file explorer 應該是不支援 rfc-2640.

commons icon [27] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

今天在爬文時,好不容易找到了這篇,立刻下載了patch 來更新FileZilla Server,Client端使用者是用IE上傳中文檔名之檔案至Server,但仍無法傳送成功,顯示傳送之檔案名稱仍是亂碼,但DELE檔案的部份是卻是正常的,想請教一下...是否還有什麼沒有改到??

2011/4/28 下午 15:08:26 - pos (xxx.xxx.xxx.xxx)> CWD /報表資料存放區/
2011/4/28 下午 15:08:26 - pos (xxx.xxx.xxx.xxx)> 250 CWD successful. "/報表資料存放區" is current directory.
2011/4/28 下午 15:08:26 - pos (xxx.xxx.xxx.xxx)> TYPE I
2011/4/28 下午 15:08:26 - pos (xxx.xxx.xxx.xxx)> 200 Type set to I
2011/4/28 下午 15:08:26 - pos (xxx.xxx.xxx.xxx)> PASV
2011/4/28 下午 15:08:26 - pos (xxx.xxx.xxx.xxx)> 227 Entering Passive Mode (192,168,0,201,216,223)
2011/4/28 下午 15:08:26 - pos (xxx.xxx.xxx.xxx)> STOR 鈭?隞賣??剛”.xls
2011/4/28 下午 15:08:26 - pos (xxx.xxx.xxx.xxx)> 150 Connection accepted
2011/4/28 下午 15:08:26 - pos (xxx.xxx.xxx.xxx)> 550 can't access file.
2011/4/28 下午 15:08:26 - (not logged in) (xxx.xxx.xxx.xxx)> Connected, sending welcome message...
2011/4/28 下午 15:08:26 - (not logged in) (220.128.129.121)> 220 歡迎使用有機廚坊FTP服務!!
2011/4/28 下午 15:08:26 - (not logged in) (xxx.xxx.xxx.xxx)> USER POS
2011/4/28 下午 15:08:26 - (not logged in) (xxx.xxx.xxx.xxx)> 331 Password required for pos
2011/4/28 下午 15:08:26 - (not logged in) (xxx.xxx.xxx.xxx)> PASS *******
2011/4/28 下午 15:08:26 - pos (xxx.xxx.xxx.xxx)> 230 Logged on
2011/4/28 下午 15:08:26 - pos (xxx.xxx.xxx.xxx)> opts utf8 on
2011/4/28 下午 15:08:26 - pos (xxx.xxx.xxx.xxx)> 200 UTF8 mode enabled
2011/4/28 下午 15:08:27 - pos (xxx.xxx.xxx.xxx)> PWD
2011/4/28 下午 15:08:27 - pos (xxx.xxx.xxx.xxx)> 257 "/" is current directory.
2011/4/28 下午 15:08:27 - pos (xxx.xxx.xxx.xxx)> CWD /報表資料存放區/
2011/4/28 下午 15:08:27 - pos (xxx.xxx.xxx.xxx)> 250 CWD successful. "/報表資料存放區" is current directory.
2011/4/28 下午 15:08:27 - pos (xxx.xxx.xxx.xxx)> DELE 五月份排班表.xls
2011/4/28 下午 15:08:27 - pos (xxx.xxx.xxx.xxx)> 550 Permission denied

commons icon [28] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

請用 ftp client 來連線. IE 的問題請去問 MS.
以你的 log 來看, 第一個看不出是不是用 utf-8. 但第二個是用 utf-8. (如果真的支援 utf-8, 本來就不應該用這個 patch 就能用才對)
據說 IE 對於 rfc-2640 的支援是有問題的 (沒 source, 沒人知道怎麼做的), 如果一定要用 IE... 就去問 MS 吧.

commons icon [29] Re:讓 FileZilla Server 可以允許非 UTF8 連線, 直到收到 OPTS UTF8 ON 指令 [ 回覆 ]

FileZilla 中文檔名支援

原版 exe 檔直接PATCH的方法 (FileZilla Server-0_9_41 測試 OK)

1. 以檔案工具開啟 "FileZilla server.exe" (如 UltraEdit)

2. 搜尋 "C6 86 BD 09 00 00 01" 改為 "C6 86 BD 09 00 00 00"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
004145CB |. C686 BD090000 01 MOV BYTE PTR DS:[ESI+9BD],1

迴響
暱稱:
標題:
個人網頁:
電子郵件:
authimage

迴響

  

Bad Behavior 已經阻擋了 93 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS