Python中拉丁-1字符的简短Unicode \N{} 名称?
在Python中,有没有简短的Unicode名字,比如u"\N{...}",可以用来表示Latin1字符?
像\N{A umlaut}这样的写法就很好,但\N{LATIN SMALL LETTER A WITH DIAERESIS}这样的名字实在太长了,每次都打太麻烦了。
(补充一下:)我用的是英文键盘,但偶尔需要用到德语字母,比如在“Löwenbräu Weißbier”这个词中。
当然可以一个一个地复制粘贴,比如L复制粘贴ö wenbr复制粘贴ä ...
但这样会打断思路;我希望能有一种只用键盘就能输入的方法。
7 个回答
1
你可以在你的字符串中直接放一个“ä”这个字符。为了做到这一点,你需要在代码的最上面声明一下编码方式。
#!/usr/bin/env python
# encoding: utf-8
x = u"ä"
3
如果你想做对的事情,请在你的Python源代码中使用UTF-8编码。这样代码会更容易阅读。
Python可以读取UTF-8编码的源文件,你只需要在第一行后面加一行代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
顺便说一下,从Python 3.0开始,UTF-8就是默认的编码方式,所以你不再需要加这一行了。可以查看PEP3120了解更多信息。
3
抱歉,没有这种东西。至少在字符串字面量中是没有的……你或许可以借用其他编码方式,比如HTML:
>>> import HTMLParser
>>> HTMLParser.HTMLParser().unescape(u'a ä b c')
u'a \xe4 b'
不过我觉得这样做不太值得。
其实几乎没人会用 \N
这种写法……如果只是偶尔需要某个字符,使用 \xnn
这种写法就可以了;如果需要更复杂的用法,直接输入 ä
会更好,并确保在脚本中定义了 # coding=
,这方面的详细信息可以参考 PEP263。(如果你的键盘布局不能直接输入这些带音符的字符,建议换一个。例如在Windows上可以用eurokb,或者在Linux上使用Compose键。)