字符编码Python 3

时间:2014-11-22 13:26:09

标签: python unicode encoding character-encoding

我一直在尝试在Python 3中打印Unicode字符,但它不起作用,我一直在寻找stackoverflow上的解决方案,但没有任何作用。我有类似的东西。

print('This is a Unicode character: Ⱥ')

但我收到此错误消息:

enter image description here

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

1 个答案:

答案 0 :(得分:0)

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

  1. Python必须知道源代码才能理解源代码中的非ASCII字符。 Python 3假设为UTF-8,除非另有说明,文件顶部有一个特殊注释,例如#coding: cp850。请注意,源编码和终端编码不必相同,只要源文件实际上以保存以UTF-形式使用UTF-8就可以了。 8。

  2. 控制台的编码必须支持Unicode字符。

  3. 控制台字体必须支持Unicode字符。
  4. 使用Unicode字符串。在Python 3中,'string'是一个Unicode字符串。 b'string'是一个字节字符串。
  5. 由于您的错误消息表明控制台正在使用Code page 850,因此如果您尝试打印该代码页不支持的任何字符,您将获得UnicodeEncodeError

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

    print('╔═╦═╗')
    print('║ ║ ║')
    print('╠═╬═╣')
    print('║ ║ ║')
    print('╚═╩═╝')
    

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