Python中的Latin-1字符的简短Unicode \ N {}名称?

时间:2009-12-26 13:15:59

标签: python unicode encoding utf-8

Python中的Latin1字符是否有简短的Unicode u“\ N {...}”名称? \ N {A umlaut}等会很好,
\ N {LATIN SMALL LETTER A WITH DIAERESIS}等等每次打字都太长了。
(添加:)我使用英文键盘,但偶尔需要德文字母,如“LöwenbräuWeißbier”。 是的,可以单独剪切它们,Lcutpasteöwenbrcutpasteä... 但这打破了流动;我希望只有键盘方式。

6 个答案:

答案 0 :(得分:3)

对不起,不,没有这样的事情。在字符串文字中,无论如何......你可能还可以搭载其他编码方案,例如HTML:

>>> import HTMLParser
>>> HTMLParser.HTMLParser().unescape(u'a ä b c')
u'a \xe4 b'

但我认为这不值得。

在任何情况下,几乎没有人使用\N符号...对于偶然的角色,\xnn符号是可以接受的;对于更多参与使用,您最好直接键入ä,并确保按照PEP263在脚本中定义# coding=。 (如果您没有可以直接键入这些变音符号的键盘布局,请在Windows上获取一个,例如:eurokb,或者在Linux上使用Compose键。)

答案 1 :(得分:3)

如果你想做正确的事,请在你的python源代码中使用UTF-8 。这将使代码更具可读性。

Python能够使用真正的UTF-8源文件,您只需在第一行之后添加一行:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

顺便说一句,从Python 3.0开始,UTF-8是默认编码,因此您不再需要此行。见PEP3120

答案 2 :(得分:1)

您可以在字符串中添加实际的“ä”字符。为此,您必须在顶部

声明源代码的编码
#!/usr/bin/env python
# encoding: utf-8

x = u"ä" 

答案 3 :(得分:0)

您是否考虑过编写自己的转换器?编写一些可以通过文件并将\ N {A umlaut}替换为\ N {LATIN SMALL LETTER A WITH DIAERESIS}以及所有其他文件并不难。

答案 4 :(得分:0)

您可以使用Unicode表示法\uXXXX来描述该字符:

u"\u00E4"

答案 5 :(得分:0)

在Windows上,您可以使用charmap.exe实用程序查找您正在使用的常用字母的键盘快捷键,例如:

ALT-0223 = ß
ALT-0228 = ä
ALT-0246 = ö

然后使用Unicode并以UTF-8保存:

# -*- coding: UTF-8 -*-
phrase = u'Löwenbräu Weißbier'

或者像其他人提到的那样使用转换器并组成自己的快捷方式:

# -*- coding: UTF-8 -*-

def german(s):
    s = s.replace(u'SS',u'ß')
    s = s.replace(u'a:',u'ä')
    s = s.replace(u'o:',u'ö')
    return s

phrase = german(u'Lo:wenbra:u WeiSSbier')
print phrase