2016-06-14 85 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