有很多关于'latin-1'编解码器的帖子,但是这些答案无法解决我的问题,也许这是我的问题,我只是一个学习python的新手。当我使用 cwd(dirname) 来更改ftp站点的目录时,发生了unicodeerror。注意 dirname 包含中文字符,显然,这些字符会导致此错误。我根据过去帖子中的建议做了一些编码和解码,但是没有用。 有人可以给我一些建议如何修复此错误并使 cwd 工作吗?
部分代码:
file = 'myhongze.jpg'
dirname = './项目成员资料/zgcao/test-python/'
site = '***.***.***.***'
user = ('zhigang',getpass('Input Pwd:'))
ftp = FTP(site)
ftp.login(*user)
ftp.cwd(dirname)# throw exception
一些测试:
U './项目成员资料/ zgcao /测试蟒/'。编码( 'UTF-8')
输出:
B” ./ \ xe9 \ XA1 \ xb9 \ XE7 \ x9b \ XAE \ XE6 \ X88 \ X90 \ xe5 \ X91 \ X98 \ xe8 \ XB5 \ X84 \ XE6 \ X96 \ X99 / zgcao /测试蟒/ “
U './项目成员资料/ zgcao /测试蟒/'。编码( 'UTF-8')。解码( 'CP1252')
输出:
UnicodeDecodeError:'charmap'编解码器无法解码位置10中的字节0x90:字符映射到
U './项目成员资料/ zgcao /测试蟒/'。编码( 'UTF-8')。解码( '拉丁-1')
输出:
'./项ç\x9b®æ\ X88 \x90å\ X91 \x98èμ\x84æ\ X96 \ X99 / zgcao /测试蟒/' 使用解码结果('latin-1'),cwd仍然不能正常工作。
我注意到项目成员资料
使用ÏîÄ¿×é³ÉԱ˽ÈË¿Õ¼ä
时retrlines('LIST')
显示为@Produces
。
答案 0 :(得分:1)
无需编辑ftplib源代码。只需在您的代码中设置 await transporter.sendMail({
from: '"haha" <noonieumsmith@gmail.com>', // sender address
to: `${email} `, // list of receivers
subject: "....", // Subject line
text: "Please confirm your email by typing this code in webiste", // plain text body
html: ` <div> This is the code for your email varification <div> ${varificationCode} </div> </div>`,
属性:
No recipients defined
关于FTP输出而不是输入的类似问题:
List files with UTF-8 characters in the name in Python ftplib
答案 1 :(得分:0)
我通过编辑ftplib.py
解决了这个问题。在我的机器上,它位于C:\Users\<user>\AppData\Local\Programs\Python\Python36\Lib
下。
您只需将encoding = "latin-1"
替换为encoding = "utf-8"