2016-06-14 73 views
1

我使用Python 2.7.11,我從擴展ASCII表Python中字符編碼返回不正確的值

# -*- coding: utf-8 -*- 
str="è" 
print(ord(str[0])) #prints 232 decimal 

得到一個字符的十進制值時,但這種字符的值是138小數得到一個錯誤的值 (http://www.asciitable.com/

當我刪除編碼的UTF-8線I得到這個錯誤SyntaxError: Non-ASCII character '\xe8'

+1

您使用的是什麼版本的Python? –

+0

添加到問題中,對不起。 – Kikapi

回答

3

UTF-8不延伸子囊。如果你檢查UTF-8表here,你會發現232確實是正確的序號。

另外,我建議喬爾在軟件的UTF-8 article

+1

更好的參考:http://www.fileformat.info/info/unicode/char/e8/index.htm – usr2564301

0

字符è referes在Unicode/UTF-8編碼0x00E8這意味着232

See this reference

字符包含在擴展ASCII請參閱擴展ASCII和python this
問題。

+0

我應該使用哪種編碼,所以ord()會返回138? – Kikapi

+0

嘗試'## - * - coding:latin-1 - * - ' – Zelldon

+0

它返回相同的值。 (232D) – Kikapi