Python – 如何将 ASCII 字符串转换为 UTF-8?

Python – How do I convert an ASCII string into UTF-8?

我在 python 中使用一个包,它 returns 是一个使用 ASCII 字符而不是 unicode 的字符串(例如 returns 'seré' 而不是 seré) .

鉴于这是 python 3.8,字符串实际上是用 unicode 编码的,包似乎只是将其输出为 ASCII。因此,当我尝试执行 x.decode('utf-8') 或 x.encode('ascii') 时,两者都不起作用。有没有办法让 python 将字符串视为 ASCII,以便我可以将其解码为 un​​icode?或者有没有可以达到这个目的的包。

我对 python 比较陌生,所以如果我的解释不清楚,我深表歉意。如果需要,我很乐意澄清事情。

代码

from spanishconjugator import Conjugator as c  
verb = c().conjugate('pasar', 'preterite', 'indicative', 'yo')
print(verb)  

这 return 是字符串 'pasé' 它应该 return 'pasé'.

更新

根据进一步搜索和您的回答,将单个 2 字节 UTF-8 (é) 字符按字面解释为两个 1 字节 latin-1 (é) 字符 (与 ASCII 无关,我的错误)。

设法修复它:

verb.encode('latin-1').decode('utf-8')

感谢那些发表评论的人。

如果输入字符串包含原始字节序数(例如 \xc3\xa9/é 而不是 é)使用 latin1 编码 它逐字逐句地转换为字节,然后 用所需的编码解码

>>> "pasé".encode('latin1').decode()
'pasé'