在我写的Python程序中,我需要打印©(版权)符号。是否有捷径可寻?或者Python不支持它?这是一个例子。
print ("\(copyright symbol here\)")
只是一个非常简单的问题。谢谢!
答案 0 :(得分:14)
在Python中,您可以通过三种方式将Unicode字符放在字符串中。 (如果你使用的是2.x而不是3.x,那么使用Unicode字符串会更简单 - 就像u"…"
而不是"…"
一样 - 你必须使用unichr
代替chr
,但其他方面都是一样的。)
U
和8位数字。'\N{COPYRIGHT SIGN}'
:使用Unicode实体名称转义序列。
COPYRIGHT SIGN
显然比00a9
更具可读性。你也可以间接做事 - 例如,unicodedata.lookup('COPYRIGHT SIGN')
或chr(0xa9)
将返回与上面文字相同的字符串。但是没有理由不使用文字。
Python文档中的Unicode HOWTO有更多详细信息 - 如果您不愿意阅读整篇文章,The String Type描述了不同类型的转义序列(以及与之相关的问题) unicode和字节串之间的编码/解码,这在2.x中尤其重要,而Unicode Literals in Python Source Code描述了如何指定编码声明。
如果您想要一个可以使用的所有字符的正式列表,而不是仅使用Google搜索,请查看您的Python版本的unicodedata
文档,其中包含指向相应版本的Unicode字符数据库的链接。 (例如,3.3.0中的6.1.0,5.7.3中的5.2.0等)你必须浏览几个链接才能进入实际列表,但这是你唯一的方法。得到的东西保证完全是编译成Python的东西。 (而且,如果您不关心这一点,您可能只是谷歌它,或使用维基百科或您的计算机的角色查看器。)
答案 1 :(得分:7)
在python 2中:
>>> print u"\u00a9"
©
>>> print u"\N{COPYRIGHT SIGN}"
©
在python 3中:
>>> print("\u00a9")
©
>>> print("\N{COPYRIGHT SIGN}")
©
在python 2中,你必须在字符串前加上一个u(u"..."
)来告诉python它是一个unicode字符串。但是,在python 3中,所有字符串都是unicode字符串,因此您不必(实际上不允许在3.0-3.2中)使用u作为字符串前缀。
您可以在此处查看字符列表及其名称/ unicode值:http://www.fileformat.info/info/charset/UTF-16/list.htm 并按照与此处使用的版权符号相同的方式使用它们
答案 2 :(得分:3)
当然!输入版权符号:
print("©")
(Python中没有像HTML中那样的字符实体。)
答案 3 :(得分:3)
版权符号是unicode字符。 如果您的终端支持包含此字符的字符编码(例如utf-8或cp1252),则可以打印它:
这依赖于Python检测终端的字符编码:
In [64]: print(u'\N{COPYRIGHT SIGN}')
©
这使用了一种显式编码(由于我的终端设置为使用utf-8字符编码,因此可以正常工作):
In [65]: print(u'\N{COPYRIGHT SIGN}'.encode('utf-8'))
©
答案 4 :(得分:2)
print u"\u00A9"
其中“\u00A9”是版权符号的unicode字符。