Python Unicode、字节和字符串到整数的转换
我正在写一个程序,处理来自外国字母表的字母。该程序正在输入一个与字符的unicode数字相关联的数字。例如,062A是用unicode为该字符指定的数字 我首先要求用户输入一个与特定字母对应的数字,即062A。我现在尝试将该数字转换为16位整数,python可以对其进行解码,以便将字符打印回用户 例如: 对于\u0394 打印(字节([0x94,0x03])。解码('utf-16')) 但是当我使用 内部('062A','16') 我收到这个错误: ValueError:基数为10的int()的文本无效:“062A” 我知道这是因为我在字符串中使用了一个,但是这是符号的unicode。有人能帮我吗 但是,当我使用Python Unicode、字节和字符串到整数的转换,python,unicode,utf-8,translation,arabic,Python,Unicode,Utf 8,Translation,Arabic,我正在写一个程序,处理来自外国字母表的字母。该程序正在输入一个与字符的unicode数字相关联的数字。例如,062A是用unicode为该字符指定的数字 我首先要求用户输入一个与特定字母对应的数字,即062A。我现在尝试将该数字转换为16位整数,python可以对其进行解码,以便将字符打印回用户 例如: 对于\u0394 打印(字节([0x94,0x03])。解码('utf-16')) 但是当我使用 内部('062A','16') 我收到这个错误: ValueError:基数为10的int()的
int('062A','16')
时,我收到以下错误:
ValueError:以10为基数的int()的文本无效:“062A”
不,你不是:
>>> int('062A', '16')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an integer
如果您想获得相应的编号Unicode代码点,那么通过字节和UTF-16进行转换就太麻烦了。只需使用chr
直接询问,例如:
>>> chr(int('0394', 16))
'Δ'
基本参数不应该是字符串,而应该是整数:
int('062A',16)
我不明白;0x062A
和\u0394
之间的预期关系是什么?您是否试图用'utf-16'
编码'062A'
?我测试了int('062A','16')
,得到了与@KarlKnechtel相同的错误(TypeError:'str'对象不能解释为整数)。请确保您的帖子包含完整、正确的错误输出。我遇到的问题主要是参数使用不正确。我还在学习如何做基本的事情,所以我犯了一个错误。\u0394的示例以及与0x062A的关系完全没有。这是我的第一篇堆栈溢出帖子,抱歉出错。下一次我会做得更好,谢谢大家。你们可以在终端上显示阿拉伯语字符,也可以不显示。Python对此无能为力。确保字符串包含正确文本的最简单、跨平台的方法是将它们写入文本文件,并在支持Unicode的文本编辑器中查看它们。说到这一点,我还是个新手。你明白了。我认为将我的东西转换成字节和UTF-16也是一项艰巨的工作,它阻止了我想从事这个项目,因为它感觉太难了。幸运的是,在阅读了你的评论和回答后,我取得了一些进展。谢谢。值得一提的是:要将整数转换为字节,请使用整数的。to_bytes
方法-您需要告诉它要使用多少字节,以及endianness。我相信,最终会有一个项目需要这样做:)
>>> chr(int('0394', 16))
'Δ'