將windows下的utf檔名複製到linux去

因為要寫程式處理檔名,所以在linux下做個實驗,才發現幾個問題。

第一個: 在dos視窗下, 如果使用 dir > filenames.txt ,結果會是一堆亂碼。

解決的方式是用 cmd/u 來啟動unicode模式的命令模式。

第二個: 即使用上述的方法產生了unicode文件,ultraedit或是linux打開都是亂碼。UltraEdit打開甚至會直接進入HEX編輯模式….用記事本打開也是一團亂….

解決的方式是乾脆用windows 7以後內建的 powershell,在附屬應用程式底下,打開會是一個藍色的介面,可以想像成進階版、威力加強版的cmd

第三個: 用了powershell成功建立了unicode的文件,在linux中用vim打開仍然是一坨大便,因為windows與linux對unicode的處理方式不同,即使用 dos2unix 也沒用。

解決的方式是,用UltraEdit打開powershell建好的文件,然後轉碼成linux格式,在 File -> Conversions -> DOS to UNIX,會在底下看到文件的編碼是U-UNIX,看起來似乎成功了,很遺憾,還是會變成亂碼….

最後我的方式是直接複製、貼上到 vim 裡面去,看起來是正常的,BUT!!

存檔的時候不能存,會出現「轉換錯誤」的錯誤訊息,此時,請在 vim 中切換到命令模式,然後輸入 set fileencoding=utf-8 就可以順利存檔了。

 

Leave a Reply

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