1. 程式人生 > >python ftplib使用報錯 UnicodeEncodeError: 'latin-1' codec can't encode characters

python ftplib使用報錯 UnicodeEncodeError: 'latin-1' codec can't encode characters

--版本python3

--模組:ftplib

 

一、使用ftplib上傳檔案的時候,遇到包含中文的檔名報錯UnicodeEncodeError: 'latin-1' codec can't encode charactersin position 4-5: ordinal not in range(256)

 

        更改ftplib.py裡

        encoding ='latin-1'

        為

        encoding ='utf-8' 

ftplib.py檔案一般在python安裝目錄的Lib資料夾下

 

二、檔名含中文,上傳到FTP檔案伺服器檔名亂碼 Ubuntu

        按上面步驟修改完後程序可以正常執行,但是因為檔名包含中文,在我的Ubuntu伺服器上顯示一串問號。這可能是因為Ubuntu系統沒有安裝中文支援,具體步驟如下:

        第一步,安裝中文包:

     sudo apt-get install language-pack-zh*

        第二步,配置相關環境變數:

     sudo vim /etc/environment

        在檔案中增加語言和編碼的設定:

     LANG="zh_CN.UTF-8"
     LANGUAGE="zh_CN:zh:en_US:en"

        我的配置檔案顯示如下:
     PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
     LANG="zh_CN.UTF-8"
     LANGUAGE="zh_CN:zh:en_US:en"

        第三步,重新設定本地配置:

     sudo dpkg-reconfigure locales

其他linux版本的修改網上也都有,不在這裡重複了

 

參考:

1、https://blog.csdn.net/zuihai/article/details/63685374

2、https://blog.csdn.net/chentengkui/article/details/77543498