首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python中的中文编码

Python中的中文编码
EN

Stack Overflow用户
提问于 2018-07-14 06:20:16
回答 3查看 7.7K关注 0票数 0

当我在Python (Pandas)中输出一些中文字符时,它显示如下

代码语言:javascript
复制
\xe8\xbf\x99\xe7\xa7\x8d\xe6\x83\x85\xe5\x86\xb5\xe6\x98\xaf\xe6\xb2\xb9\xe6\xb3\xb5\xe6\x95\x85\xe9\x9a\x9c\xe7\x81\xaf\xef\xbc\x8c\xe6\xa3\x80\xe6\x9f\xa5\xe4\xb8\x80\xe4\xb8\x8b\xe6\xb2\xb9\xe6\xb3\xb5\xe6\x8f\x92\xe5\xa4\xb4\xe6\x98\xaf\xe5\x90\xa6\xe6\x8e\xa5\xe8\x99\x9a\xef\xbc\x8c\xe7\x84\xb6\xe5\x90\x8e\xe6\x9f\xa5\xe4\xb8\x80\xe4\xb8\x8b\xe6\xb2\xb9\xe6\xb3\xb5\xe5\x86\x85\xe7\xae\xa1\xe9\x81\x93\xe5\x8e\x8b\xe5\x8a\x9b\xe6\x98\xaf\xe5\x90\xa6\xe7\xac\xa6\xe5\x90\x88\xe6\xad\xa3\xe5\xb8\xb8\xe5\x80\xbc\xe3\x80\x82

编码格式是什么?据我所知,它不是unicode。谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-14 23:05:09

您正在接收的输出称为字节对象。为了解码它,你需要做output.decode('utf-8')

例如:

代码语言:javascript
复制
output = b'\xe8\xbf\x99\xe7...'
unicode_output = output.decode('utf-8')
print(unicode_output)

然后输出非拉丁字符(我不能包含它,因为它被算作垃圾邮件)。

另一种在一行代码中完成此操作的方法是:print(b'\xe8\xbf\x99\xe7...'.decode('utf-8'))

但是,如果这不起作用,那么可能是因为您的输出不是字节对象,而是包含在一个字符串中。如果这不起作用,那么还有另一种解决方案。

代码语言:javascript
复制
output = '\xe8\xbf\x99\xe7...'
exec('print(b\''+ output + '\'.decode(\'utf-8\'))')

这应该能够修复它。希望你能从中得到一些有用的东西。祝你今天愉快!

票数 1
EN

Stack Overflow用户

发布于 2018-07-14 07:51:43

这是bytes类型,包含一个有效的utf-8中文文本(据我所能信任的谷歌翻译)。

如果它是代码中的字符串文字,则将# -*- coding: utf-8 -*-添加为Python文件的第一行。

如果是外部数据,则为here's how to convert it to a text (str类型):bytes_text.decode("utf-8")

票数 0
EN

Stack Overflow用户

发布于 2018-07-14 08:07:49

raw_bytes = b'\xe8\xbf\x99\xe7\xa7\x8d\xe6\x83\x85 . . .'

使用包含十六进制字符的<class 'bytes'>对象raw_bytes,然后可以在raw_bytes上调用decode并获得字符的<class 'str'>表示。

string_text = raw_bytes.decode("utf-8")

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51333489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档