2009-12-26 28 views
3

Python中的Latin1字符的名稱是否有簡短的Unicode u「\ N {...}」名稱? \ N {變音符號}等會很好,
\ N {拉丁小寫字母A}等是太長,每次輸入。
(增加:)我使用英文鍵盤,但偶爾需要德文字母,如「LöwenbräuWeißbier」中所示。
是的,你可以單獨切割粘貼它們,L cutpasteöwenbr cutpasteä... 但這會打破流動;我希望只有鍵盤方式。Python中用於Latin-1字符的簡寫Unicode N {}名稱?

+1

什麼語言/正則表達式的實現還允許這樣的表情? – Gumbo 2009-12-26 15:18:34

+0

@Gumbo:當然是Perl的。 – tchrist 2010-10-31 02:07:23

回答

3

對不起,沒有這樣的事情。在字符串常量,反正......你也許可以搭載在另一種編碼方案,如HTML:

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

但我不認爲this'd是值得的。

幾乎沒有人甚至在任何情況下使用\N表示法...對於偶爾出現的字符\xnn表示法是可以接受的;對於更多涉及的用法,您最好直接輸入ä並確保# coding=在腳本中根據PEP263定義。 (如果你沒有可直接鍵入這些變音符號的鍵盤佈局,請在Windows上使用eurokb,或使用Linux上的Compose鍵。)

+0

同意,不值得 - 希望得到\ n {auml}。 Mac上有「撰寫」嗎? – denis 2009-12-26 16:50:58

+0

不完全像Compose,但顯然你應該能夠用'Option' +'U'然後'A'輸入'ä'。 http://tlt.its.psu.edu/suggestions/international/accents/codemac.html – bobince 2009-12-26 18:34:17

0

你有沒有想過要編寫自己的轉換器?寫一些可以通過文件並用\ N {拉丁小寫字母A帶有DIAERESIS}和其他所有內容替換\ N {變音符}並不難。

3

如果你想做正確的事情,請在你的python源代碼中使用UTF-8。這將使代碼更加可讀。

Python是能夠真正的UTF-8的源文件,所有你需要做的就是第一個後添加一個附加行:

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

順便說一句,開始與Python 3.0 UTF-8默認編碼,所以你不會再需要這條線了。請參閱PEP3120

+0

好的,但(澄清補充)我希望\ n {aumlaut}或類似的,快速鍵入和清除 – denis 2009-12-26 16:44:19

1

您可以在字符串中放入實際的「ä」字符。對於這一點,你必須在頂部

#!/usr/bin/env python 
# encoding: utf-8 

x = u"ä" 
0

您可以使用Unicode符號\uXXXX也形容這個角色聲明的源代碼的編碼:

u"\u00E4" 
0

在Windows上,你可以使用字符表。 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 
相關問題