【问题标题】:Python character encoding returns incorrect valuePython 字符编码返回不正确的值
【发布时间】:2016-06-14 11:12:36
【问题描述】:

我使用的是 Python 2.7.11,从扩展 ascii 表中获取字符的十进制值时得到错误值

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

但是这个字符的值是十进制的 138 (http://www.asciitable.com/)

当我删除编码 utf-8 行时,我收到此错误SyntaxError: Non-ASCII character '\xe8'

【问题讨论】:

  • 你用的是什么版本的 Python?
  • 已添加到问题中,抱歉。

标签: python encoding


【解决方案1】:

UTF-8 不是扩展 asci。如果您检查 UTF-8 表 here,您会发现 232 确实是正确的序数。

另外,我推荐 Joel 在软件的UTF-8 article

【讨论】:

    【解决方案2】:

    字符è 在unicode/utf-8 编码中引用0x00E8,即232

    See this reference

    字符包含在扩展 ASCII 中,请参阅this
    扩展ASCII和python的问题。

    【讨论】:

    • 我应该使用哪种编码,所以 ord() 将返回 138?
    • 试试## -*- coding: latin-1 -*-
    • 返回相同的值。 (232d)
    猜你喜欢
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多