我现在读了一些关于unicode的文章。
我使用的是Python2.7.2,但是使用的是未来的print_函数(因为原始的print语句对我来说相当混乱)
下面是一些代码:

# -*- coding: L9 -*-
from __future__ import print_function, unicode_literals

现在如果我打印
print("öäüߧ€")

它工作得很好。
但是,是的,我对python是完全陌生的,如果我声明一个函数,它将打印unicode字符串,我的脚本就会崩溃
def foo():
    print("öäü߀")

foo()

Traceback (most recent call last):
  File "C:\Python27\test1.py", line 7, in <module>
    foo()
  File "C:\Python27\test1.py", line 5, in foo
    print("÷õ³▀Ç")
  File "C:\Python27\lib\encodings\cp850.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\x80' in position 4: character maps to <undefined>

一般来说,处理此错误和unicode的最佳方法是什么?
我应该坚持2.7版的声明吗?

最佳答案

我想print("öäü߀".encode('L9'))能解决你的问题。

关于python - 函数中的Python 2.7 Unicode错误(使用__future__ print_function和unicode_literals),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19273624/

10-12 03:51