Python 2.x字符串:Unicode与字节

use*_*990 2 python string unicode character-encoding

我处理非我们的语言,有时仍然需要用Python 2.x编写.阅读这篇文章:http : //www.snarky.ca/why-python-3-由Brett Cannon出现让我想知道如果这意味着如果我使用的字符串只是字符而不是字节,我应该在前面加上我的所有字符串u,以避免字节串和unicode字符串之间的潜在混淆?并且:这也适用于Jython吗?

最后一个问题:-*- coding: utf-8 -*-完全不依赖于上述内容,仅提供文件本身的编码 - 正确吗?

Mar*_*ers 5

是的,您希望将文本保留在unicode对象(strPython 3中的类型)中,并保持Unicode三明治(尽快解码传入数据,推迟编码直到数据需要退出应用程序).请参阅Ned Batchelder出色的Unicode演示文稿.

这也适用于Jython,它只是Python语言的另一种实现.

PEP 263源代码编码声明告诉解释在解码源代码的字节时使用何种编解码器.它在使用非ASCII字节定义Unicode文字时有帮助,但没有规定除源代码之外的其他数据是如何编码或解码的.