如何修复西里尔字母不解码



我向站点发送请求,解析数据,然后尝试输出它,但它输出了一些奇怪的编码,我不知道如何解决它。

body_clean = re.search('"body_clean": "', r.text)
body_clean1 = re.search('", "attachments', r.text)
body = r.text[body_clean.end():body_clean1.start()]
print (body)

我需要输出:

Сдать после каникул, 15 апреля.&;Убедительная просьба оформлять решение &;как положено&; в соответствии с тем &;как учили&;, а не так, будто бы вы его на коленке за 5 минут перед сдачей делали. Писать разборчиво и аккуратно.

但我得到输出

u0421u0434u0430u0442u044c u043fu043eu0441u043bu0435 u043au0430u043du0438u043au0443u043b, 15 u0430u043fu0440u0435u043bu044f. rnu0423u0431u0435u0434u0438u0442u0435u043bu044cu043du0430u044f u043fu0440u043eu0441u044cu0431u0430 u043eu0444u043eu0440u043cu043bu044fu0442u044c u0440u0435u0448u0435u043du0438u0435 "u043au0430u043a u043fu043eu043bu043eu0436u0435u043du043e" u0432 u0441u043eu043eu0442u0432u0435u0442u0441u0442u0432u0438u0438 u0441 u0442u0435u043c "u043au0430u043a u0443u0447u0438u043bu0438", u0430 u043du0435 u0442u0430u043a, u0431u0443u0434u0442u043e u0431u044b u0432u044b u0435u0433u043e u043du0430 u043au043eu043bu0435u043du043au0435 u0437u0430 5 u043cu0438u043du0443u0442 u043fu0435u0440u0435u0434 u0441u0434u0430u0447u0435u0439 u0434u0435u043bu0430u043bu0438. u041fu0438u0441u0430u0442u044c u0440u0430u0437u0431u043eu0440u0447u0438u0432u043e u0438 u0430u043au043au0443u0440u0430u0442u043du043e.

更新:

尝试了此代码,获得相同的输出

encoded = body.encode("utf-8")
        decoded = str(encoded,'utf-8')
        print(decoded)

我从中解析数据的页面信息:

HTTP/1.1 200 OK
Server: nginx/1.14.0
Date: Fri, 12 Apr 2019 11:47:09 GMT
Content-Type: application/json

你得到的输出是一串 unicode 字符。用 utf-8 对正文进行编码以获取字节字符串,然后对其进行解码:

body = "u0421u0434u0430u0442u044c."
encoded = body.encode("utf-8")
decoded = str(encoded,'utf-8')
print(decoded)

输出:

Сдать.

您的服务器可能以错误的编码进行响应。你可以用r.encoding检查它。 当您访问响应的属性时.text requests正在使用它。

可以手动将编码更改为使用 r.encoding = "utf-8" utf-8,然后访问 .text 属性。

r.encoding = "utf-8"
# Now r.text shoud be fine
body_clean = re.search('"body_clean": "', r.text)
body_clean1 = re.search('", "attachments', r.text)
body = r.text[body_clean.end():body_clean1.start()]
print (body)

requests文档

相关内容

最新更新