gpt4 book ai didi

python - 使用 Python 从 ascii 转换为 utf-8

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:34 25 4
gpt4 key购买 nike

我有一个用 python 编写的 xmpp 机器人。其中一个插件能够执行操作系统命令并将输出发送给用户。据我所知,输出应该是类似 unicode 的,以便通过 xmpp 协议(protocol)发送。所以我尝试这样处理:

output = os.popen(cmd).read() 
if not isinstance(output, unicode):
output = unicode(output,'utf-8','ignore')
bot.send(xmpp.Message(mess.getFrom(),output))

但是,当俄语符号出现在输出中时,它们的转换效果不佳。

sys.getdefaultencoding() 

说默认的命令提示符编码是“ascii”,但是当我尝试这样做时

output.decode('ascii') 

在 python 控制台中我得到

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0x92 in position 1:
ordinal not in range(128)

操作系统:Win XP,Python 2.5.4PS:对不起我的英语:(

最佳答案

sys.getdefaultencoding() 返回 python 的 默认编码 - 除非您更改它,否则它是 ASCII。 ASCII 不支持俄语字符。

您需要手动或使用 locale module 找出实际文本的编码方式.

通常是这样的:

import locale
encoding = locale.getpreferredencoding(do_setlocale=True)¶

关于python - 使用 Python 从 ascii 转换为 utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2262879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com