3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ftplibで日本語を扱う最適解

Last updated at Posted at 2018-06-18

概要

ftplibで日本語を扱うまでに結構紆余曲折してしまったので最適解であろうコードを共有します。

結論

from ftplib import FTP

# ※正解: インスタンス生成前に設定を変更する
FTP.encoding = "utf-8"

# あとはお好きに
ftp_instance = FTP(~,~)

# ※よくある間違い: インスタンス生成後に設定変更
#   エラー文は変わるが、結局デコードなどを行う必要がありそう
#   (ここから正常動作まで持っていったことがないので未検証)
ftp_instance.encoding = "utf-8"

余談

teratailの記事が見つかるまではftplib内のencodingを直接書き換えてました…。
正直、FTPクラスにencoding引数がある方がスマートな気がするんですが、今のとこそういったプルリクもなさそうなのでだれか改善提案をば…!

参考

https://teratail.com/questions/128468
下の記事はぐぐるとわりとトップに出てくるけど間違っているやつ
https://stackoverflow.com/questions/29523067/python-reading-ftp-file-list-with-utf-8

3
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?