首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符编码Python 3

字符编码Python 3
EN

Stack Overflow用户
提问于 2014-11-22 13:26:09
回答 1查看 724关注 0票数 1

我一直试图在Python 3中打印一个Unicode字符,但它只是不起作用,我一直在寻找一个关于堆栈溢出的解决方案,但是没有任何效果。我有这样的东西。

代码语言:javascript
复制
print('This is a Unicode character: Ⱥ')

但我收到了一条错误消息:

我知道Python 3使用UTF-8作为默认编码,但我不知道我在这里做错了什么。

EN

回答 1

Stack Overflow用户

发布于 2014-11-23 08:12:21

要正确打印Unicode字符,您需要以下内容:

  1. Python必须了解源代码中的非ASCII字符的源代码编码。Python3假设UTF-8,除非另有通知,文件顶部有一个特殊的注释,如#coding: cp850。请注意,源编码和终端编码不必相同,只要源文件实际保存在UTF-8中,就可以使用UTF-8作为源编码。
  2. 控制台的编码必须支持Unicode字符。
  3. 控制台的字体必须支持Unicode字符。
  4. 使用Unicode字符串。在Python3中,'string'是一个Unicode字符串。b'string'是一个字节字符串。

由于您的错误消息表明控制台正在使用代码页850,所以如果您试图打印该代码页不支持的任何字符,您将得到一个UnicodeEncodeError

尝尝这个。这些是合法的cp850字符:

代码语言:javascript
复制
print('╔═╦═╗')
print('║ ║ ║')
print('╠═╬═╣')
print('║ ║ ║')
print('╚═╩═╝')

这在任何支持行绘制字符的控制台/IDE上都适用于Python 3。美国Windows控制台使用cp437,欧洲Windows经常使用cp850,但两者都定义字符和控制台字体支持它们。

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

https://stackoverflow.com/questions/27077908

复制
相关文章

相似问题

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