Python中的特殊字符

时间:2009-07-14 20:21:58

标签: python chars

我必须在我的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'...   我如何在我的应用程序的字符串中使用它?

6 个答案:

答案 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"

这说明:

  1. 使用u前缀确保字符串是unicode对象
  2. 在基本的多语言平面中使用u转义符(U + FFFD及以下)
  3. 将U转义用于其他平面(U + 10000及以上)中的字符
  4. Ƃ(U + 0182 LATIN CAPET B B WITH TOPBAR)和Б(U + 0411 CYRILLIC CAPTIAL LETTER BE)只是许多令人困惑的类似Unicode代码点的一个例子
  5. 适用于各处的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