Python2.x字符串:Unicode与字节



我处理的是非us语言,有时还必须用Python 2.x编写。阅读本文:http://www.snarky.ca/why-python-3-existsBrett Cannon的文章让我怀疑这是否意味着,如果我使用的字符串只是字符而不是字节,我是否应该在所有字符串前加上u,以避免字节字符串和unicode字符串之间的潜在混淆?而且:这也适用于Jython吗?

最后一个问题是:-*- coding: utf-8 -*-完全独立于上述内容,只提供文件本身的编码,对吗?

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

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

PEP263源代码编码声明告诉解释器在解码源代码中的字节时使用什么编解码器。当用非ASCII字节定义Unicode文字时,它会有所帮助,但不会规定如何编码或解码源代码以外的其他数据。

最新更新