close

現象/問題:

使用winscp把中文檔案丟到linux 上,發現那些中文檔案無法使用node.js的readdir來存取 但是使用samba把中文檔案丟到linux上,readdir卻可以存取 此外, winscp上傳的中文檔,用SAMBA登入看到亂碼 SAMBA上傳的中文檔,用winscp登入看到是亂碼

解釋/過程:

winscp預設不知到是用什麼隊檔名進行編碼動作,所以winscp的檔名linux看不懂,只有winscp自己看得懂 而且,檔名編碼是根據每個應用程式的 如winscp高興使用特殊編碼來寫檔名,winscp自己看得懂就OK 讓winscp使用UTF-8的方式,設定步驟︰ 在 WinSCP 登入 (WinSCP Login) 畫面,點選有亂碼問題的期間 (Session) ,按下右側的編輯 (Edit) 。 將協定 (Protocol) 選為 SFTP 或 FTP 。 按左邊的環境 (Environment) ,把 UTF-8 檔案名稱編碼 (UTF-8 encoding for filenames) 從自動 (Auto) 改成開 (On) 。 按下儲存 (Save) 。

結論:

撞到這個問題一開始沒想到是winscp的問題,裝了iconv-lite做不停的轉碼測試,都沒有結果 一度想放棄來使用 workaround來讀取檔名資訊,以為顯示不正常是因為shell的問題....
  • ls --show-control-chars
  • tree -X
最後發現是winscp的問題... 出來混的還是要還... 整個系統使用UTF8進行檔名編碼最好

附註:

arrow
arrow
    文章標籤
    node.js
    全站熱搜

    Perry Wu 發表在 痞客邦 留言(0) 人氣()