我必须在我的python应用程序中使用特殊字符。 例如:ƃ 我有这样的信息:
U+0183 LATIN SMALL LETTER B WITH TOPBAR
General Character Properties
In Unicode since: 1.1
Unicode category: Letter, Lowercase
Various Useful Representations
UTF-8: 0xC6 0x83
UTF-16: 0x0183
C octal escaped UTF-8: \306\203
XML decimal entity: &# 387;
但是当我把符号变成python-script时,我得到一个错误:
非ASCII字符'\ xc8'... 我如何在我的应用程序的字符串中使用它?
答案 0 :(得分:11)
您应该告诉解释器您正在使用哪种编码,因为显然在您的系统上它默认为ascii。见PEP 263。在您的情况下,请将以下内容放在文件的顶部:
# -*- coding: utf-8 -*-
请注意,您不必完全编写 ; PEP 263允许更多的自由,以容纳几个流行的编辑器,这些编辑器为了相同的目的使用稍微不同的约定。另外,该字符串也可以放置在第二行上,例如,当第一个用于shebang时。
答案 1 :(得分:3)
答案 2 :(得分:3)
虽然这些答案都是正确的,但我认为我会提供更完整的治疗方法:
在脚本文字中表示非ASCII字符的最简单方法是使用u前缀和u或U转义符,如下所示:
print u"Look \u0411\u043e\u0440\u0438\u0441, a G-clef: \U0001d11e"
这说明:
unicode
对象适用于各处的Python的默认脚本编码是ASCII。因此,您必须使用上述转义来编码非ASCII字符的文字。您可以通过以下行来通知Python解释器脚本的编码:
# -*- coding: utf-8 -*-
这只会更改脚本的编码。但是你可以写:
print u"Look Борис, a G-clef: "
请注意,您仍然必须使用u前缀来获取unicode
对象,而不是str
对象。
最后, 可以更改用于str
的默认编码...但不推荐这样做,因为它是一个全局更改,可能无法与其他python代码一起使用
答案 3 :(得分:1)
您是否将Python文件存储为UTF-8?你的编辑器是否支持UTF-8?您是否正在使用这样的unicode字符串?
foo = u'ƃƃƃƃƃ'
答案 4 :(得分:0)
声明Unicode字符串。
somestring =u'æøå'
答案 5 :(得分:0)
在python中它应该是
u"\u0183"
String start之前的u表示String包含Unicode字符。
请参阅此处以供参考:
http://www.fileformat.info/info/unicode/char/0183/index.htm http://docs.python.org/tutorial/introduction.html#unicode-strings