【发布时间】:2014-05-28 13:23:02
【问题描述】:
在源代码中使用 unicode 字符串时,似乎有很多方法可以给猫剥皮。 docs 和相关的 PEP 有很多关于什么是可能的信息,但是对于什么是首选的却很少。
例如,以下每个似乎都给出相同的结果:
# coding: utf8
u1 = '\xe2\x82\xac'.decode('utf8')
u2 = u'\u20ac'
u3 = unichr(0x20ac)
u4 = "€".decode('utf8')
u5 = u"€"
如果使用 __future__ 导入,我发现了另外一种选择:
# coding: utf8
from __future__ import unicode_literals
u6 = "€"
在python中我习惯了一种明显的方法,那么在源文件中包含国际内容的推荐方法是什么?
这是一个 python 2 问题。
一些背景...
方法 u1, u2, u3 对我来说似乎很愚蠢,但我已经看到足够多的人这样写,我认为这不仅仅是个人喜好 - 是否有任何特殊原因我们可能只想在源代码中强制使用 ascii 字符文件,而不是指定编码,或者这只是一种更可能在旧代码中发现的习惯?
使用实际符号而不是一些转义序列的代码的可读性得到了巨大的改进,不这样做似乎是在忽视语言的优势,而不是利用 python 开发人员的辛勤工作。
【问题讨论】:
-
其余的主要是基于意见的,我担心。
u1、u3和u4在我看来不是我曾经考虑过的。u2或u5对我来说,u2不太容易受到其他人错误配置他们的文本编辑器的影响,但只能在它之后使用注释来解释它代表什么代码点,如果这样的非 ASCII 代码点相对很少见。
标签: python unicode coding-style python-2.x