Unicode、字节和字符串到整数的转换
Unicode, Bytes, and String to Integer Conversion
我正在编写一个处理外国字母表中字母的程序。该程序正在输入与字符的 unicode 编号相关联的数字。例如 062A 是在 unicode 中为该字符分配的数字。
我首先要求用户输入一个对应于特定字母的数字,即 062A。我现在正试图将该数字转换为 16 位整数,可以通过 python 解码以将字符打印回用户。
示例:
对于 \u0394
打印(字节([0x94, 0x03]).解码('utf-16'))
然而当我使用
int('062A', '16')
我收到此错误:
ValueError:以 10 为底的 int() 的无效文字:'062A'
我知道这是因为我在字符串中使用了 A,但这是符号的 unicode。谁能帮帮我?
however when I am using int('062A', '16')
, I receive this error:
ValueError: invalid literal for int() with base 10: '062A'
不,你不是:
>>> int('062A', '16')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an integer
正如它所说的那样。问题不是 '062A'
,而是 '16'
。基数应该直接指定为整数,而不是字符串:
>>> int('062A', 16)
1578
如果要得到对应编号的Unicode码位,那么通过bytes和UTF-16转换就太麻烦了。直接用chr
询问即可,例如:
>>> chr(int('0394', 16))
'Δ'
我正在编写一个处理外国字母表中字母的程序。该程序正在输入与字符的 unicode 编号相关联的数字。例如 062A 是在 unicode 中为该字符分配的数字。
我首先要求用户输入一个对应于特定字母的数字,即 062A。我现在正试图将该数字转换为 16 位整数,可以通过 python 解码以将字符打印回用户。
示例:
对于 \u0394
打印(字节([0x94, 0x03]).解码('utf-16'))
然而当我使用
int('062A', '16')
我收到此错误:
ValueError:以 10 为底的 int() 的无效文字:'062A'
我知道这是因为我在字符串中使用了 A,但这是符号的 unicode。谁能帮帮我?
however when I am using
int('062A', '16')
, I receive this error:ValueError: invalid literal for int() with base 10: '062A'
不,你不是:
>>> int('062A', '16')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an integer
正如它所说的那样。问题不是 '062A'
,而是 '16'
。基数应该直接指定为整数,而不是字符串:
>>> int('062A', 16)
1578
如果要得到对应编号的Unicode码位,那么通过bytes和UTF-16转换就太麻烦了。直接用chr
询问即可,例如:
>>> chr(int('0394', 16))
'Δ'