質問: ftp.mlsd() for File_Name, File_Dictionary in File_Info: print(File_Name) #ここで文字化けが起こります。 ``` ### 試したこと うまく表示できるか分かりませんが、文字化けの例として 正: 仕様書 誤: ä»æ§æ のようになってしまいます。 ### 補足情報(FW/ツールのバージョンなど) OSはWindows10、PythonスクリプトではUTF-8を指定しております。
回答: もじばけらったで解析してみると以下の結果が得られます。 | 入力/出力 | エンコード | | --- | --- | | 入力 | UTF-8 | | 出力 | ISO-8859-1 (latin-1) | ftplib.py#L106を見る限りでは`encoding` が`latin-1`で定義されています。 ◇対応案1 encodingをUTF-8にする。 ``` FTP.encoding = 'UTF-8' ftp = FTP('***.***.*.*') ``` ◇対応案2 decode→encodeを行う。この場合は範囲外の文字に注意です。 ``` File_Name.decode('iso-8859-1').encode('utf8') ```