Dri*_*Boy 6 python iso-8859-1 character-encoding
有了ord(ch)你可以得到字符数字代码ch最多127.是否有任何函数返回0-255之间的数字,所以还要覆盖ISO 8859-1字符?
编辑:按照我上一版本的代码和错误得到
#!/usr/bin/python
# coding: iso-8859-1
import sys
reload(sys)
sys.setdefaultencoding('iso-8859-1')
print sys.getdefaultencoding() # prints "iso-8859-1"
def char_code(c):
return ord(c.encode('iso-8859-1'))
print char_code(u'à')
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:TypeError:ord()期望一个字符,但找到长度为2的字符串
当您从 Unicode 字符串开始时,您需要而encode不是decode.
>>> def char_code(c):\n return ord(c.encode(\'iso-8859-1\'))\n\n>>> print char_code(u\'\xc3\xa0\')\n224\nRun Code Online (Sandbox Code Playgroud)\n\n特别是对于 ISO-8859-1,您甚至根本不需要对其进行编码,因为 Unicode 使用 ISO-8859-1 字符作为其前 256 个代码点。
\n\n>>> print ord(u\'\xc3\xa0\')\n224\nRun Code Online (Sandbox Code Playgroud)\n\n编辑:我现在看到问题了。您已给出源代码编码注释,表明源代码采用 ISO-8859-1。不过,我敢打赌您的编辑器实际上是在 UTF-8 下工作的。源代码将被错误解释,您认为创建的单字符字符串实际上是两个字符。请尝试以下操作来查看:
\n\nprint len(u\'\xc3\xa0\')\nRun Code Online (Sandbox Code Playgroud)\n\n如果您的编码正确,它将返回1,但在您的情况下它可能是2。