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