2015-11-06 61 views
0

ord()命令和Unicode有一些問題。在python中獲取ASCII Int與ord()的德語umlaute(ÄÖÖ)

我想輸入的ASCII字母的十進制數。

例如:

ord('ÄÖÜ')由此想到這些值:[195,132,195,150,195,156]

  • [195132] = A
  • [195150] = Ö
  • [195156] = U

這就是我想要的東西:

  • [196] = A
  • [214] = O
  • [220] = U

任何線索?

+0

[這](http://stackoverflow.com/questions/23271542/rpython-ord-with-non-ascii-character)和[this](http://stackoverflow.com/questions/1342000/how-to-make-the-python-interpreter-correctly-handle-非ascii-characters-in-stri)可能有幫助 –

回答

1

這個工作對我來說:

>>> [ord(i) for i in unicode('ÄÖÜ','utf-8')] 
[196, 214, 220] 
+0

這就像一個魅力,非常感謝:-) –

2

你想要的Unicode碼點,而不是在UTF-8編碼的字節:

>>> mystring = u'ÄÖÜ' 
>>> [ord(c) for c in mystring] 
[196, 214, 220] 
+0

如果我的字符串放在python本身,它放在一個變量中的字符串中,這可能會起作用,但是這也可以起作用,謝謝很多:) –

+0

我的答案和羅伯特的唯一區別是使用Unicode文字與調用'unicode';兩者都產生相同的Unicode對象,受制於默認的字符編碼。 (在我的回答中,Unicode字面值使用任何字符編碼生效;在Robert的字符串字面值中,作爲第一個參數必須是UTF-8,或者第二個參數是錯誤的。) – chepner

+0

Ahh我看到了,我可以使用該Unicode字符關於變量呢? –

相關問題