首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3无法使用big5解码\xBD\xC6\xBB\x73

Python 3无法使用big5解码\xBD\xC6\xBB\x73
EN

Stack Overflow用户
提问于 2012-04-13 22:52:47
回答 1查看 744关注 0票数 0

我正在从数据库中读取SQLASCII字符串,并且遇到了一些基于我声明的big5编码不能正确解码的字节。下面是简化后的问题。python的Big5编码表似乎不知道如何解码这两个字符。据我所知(我不是专家),这些是有效的中文字符,因为我可以使用Notepad++并更改编码,使它们显示为中文字符。我将它们在Notepad++中的外观与这个网站进行了比较,字符匹配,因此我假设它们是big5编码表的有效字节。

http://ash.jp/code/cn/big5tbl.htm

代码语言:javascript
复制
by = b'\xBD\xC6\xBB\x73'
print(by,len(by))
print(by.decode('big5'))

b'\xbd\xc6\xbbs‘4

回溯(最近一次调用):文件"qtest1.py",第15行,在打印中(by.decode(‘big5’))文件"C:\Python32\lib\encodings\cp1252.py",第19行,在encode return codecs.charmap_encode(input,self.errors,encoding_table)中UnicodeEncodeError:'charmap‘编解码器无法编码位置0-1的字符:字符映射到

任何帮助都非常感谢...

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-14 01:09:59

仔细看:那是一个UnicodeEncodeError --它不能编码,不能解码。还要看看它使用的模块:...\lib\encodings\cp1252.py。因此,有人试图将文本编码为cp1252。

事实上,解码为big5运行得很好--我可以运行你的代码并得到中文的characters1。问题出在你的终端上--Python试图用你的Windows代码页(cp1252)对中文字符进行编码,但它并不知道如何处理它们。您应该能够将它们写入使用合适的编码(UTF-8或big5)打开的文件,或者对它们执行任何需要的操作,只是不能将它们写入终端。

1大多数Linux终端使用UTF-8,所以任何字符都可以工作。

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

https://stackoverflow.com/questions/10143139

复制
相关文章

相似问题

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