Arc*_*eca 2 python unicode python-2.7
我正在我的 Python 程序中使用国际音标 (IPA) 符号,这是一组相当奇怪的字符,其 UTF-8 代码的长度范围为 1 到 3 个字节。几年前的这个线程基本上问了相反的问题,它似乎ord(character)可以检索一个十进制数,我可以将其转换为十六进制,然后再转换为代码点,但输入ord()似乎仅限于一个字节。如果我尝试ord()使用任何非 ASCII 字符,?例如,它会输出:
TypeError: ord() expected a character, but a string of length 2 found
Run Code Online (Sandbox Code Playgroud)
由于不再是一个选项,Python 2.7 中是否有任何方法可以找到给定字符的 Unicode 代码点?(然后那个字符必须是一种unicode类型吗?)我的意思也不是只是在 Unicode 表上手动查找它。
由于不再是一个选项,Python 2.7 中是否有任何方法可以找到给定字符的 Unicode 代码点?(然后那个字符必须是 unicode 类型吗?)我的意思也不是只是在 Unicode 表上手动查找它。
您只能找到 unicode 对象的 unicode 代码点。要将字节字符串转换为 unicode 对象,请使用 对其进行解码mystr.decode(encoding),其中encoding是字符串的编码。(您知道您的字符串的编码,对吗?它可能是UTF-8。:-) 然后您可以ord根据您已经找到的说明使用。
>>> ord(b"?".decode('utf-8'))
616
Run Code Online (Sandbox Code Playgroud)
顺便说一句,从您的问题来看,听起来您正在使用 UTF-8 编码字节形式的字符串。那可能会很痛苦。您应该在获得字符串后立即将它们解码为 unicode 对象,并且仅在需要将它们输出到某处时才对它们进行编码。
| 归档时间: |
|
| 查看次数: |
2547 次 |
| 最近记录: |