看板 NTUCE-92 關於我們 聯絡資訊
※ 引述《Lavender (陽光盒子)》之銘言: : ※ 引述《BigLittle (栗頭壞掉了)》之銘言: : : 是serv-u的鳥問題嗎? : : 「許」就看不到 : 這種問題有兩種, 一種是某個字元單純抓不到, 最好的例子就是"許" : 另外一種問題是, 某個字放在最後就不行, 這是編碼的問題 : 只要在這個字後面隨便加個_之類的就解決了.. 許、功等字會不行,跟字元抓不到沒有關係,是因為 escape 字元的關係。許、功等字裡面有一個 byte 是 '\' 字元,這個字元對大部分輸出輸入函式都是 escape 字元, 所以在存取到這個字元的時候,會把這個字元後一個 byte 當成控制碼,因此會掉兩個字元('\' 和後面一個 byte)。 以「許」為例,這個字的第二個 byte 就是 '\' 字元,因此 跟在「許」後面的字的第一個 byte 會被當成控制字元, 而「許」本身第二個 byte 則被當成 escape 字元,所以 處理上沒有特別注意的話,「許」無法正確顯示,跟在他 後面的字也會遭殃。 : 根據我實測的結果, "缺"這個字對Serv-u是不會造成問題的 : 建議學長, 重要的檔案還是用英文檔名吧, 以免發生某些人抓不到的情形.. : 使用CuteFTP程式的, 可以嘗試 Edit->Setting->Connection->Firewall 中 : 把PASV mode打勾 另外,基本上我不是用 Serv-U,而 FTP 的 PASV mode (Passive Mode) 跟這個沒有關係, passive mode 是用在你位於 firewall 後端的時候 用的。ftp 協定本身分成兩種類型連線,一種叫做 control connection, 一種叫做 data connection。平常我們連線 ftp server 的時候,是先建立 control connection,ftp control connection 的 default port 是 21, 就算有改掉,也會是固定的,但是一旦要進行檔案傳輸,就要 server 和 client 程式協調,建立 data connection,而 data connection 因為是協調之後動態建立的,所以 port 會不固定。在一般非 passive mode 的狀況下,是由 ftp client 進行 listen 的動作,而由 server 進行 connect 的動作,但是因為 client 在 firewall 後端,server 的 connect 動作多半會被 firewall 擋下來,所以 ftp 協定裡面才 有 PASV 命令,讓兩者角色顛倒過來,在 PASV 命令啟動 passive mode 模式下,由 server 端 listen,改由 client 主動建立連線,這樣 就不會發生 firewall 阻擋 data connection 建立的狀況。這個東西 基本上跟中文相容沒有關係。 至於為何「缺」這個字會存取發生錯誤,應該還是跟他自己用的 程式有關係,因為 server 端的記錄並沒有錯誤發生。 -- ※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw) ◆ From: 140.112.23.95