Python Tkinter标签未显示正确的ASCII值

时间:2017-12-08 11:55:19

标签: python tkinter

Hex值转换为ASCII并通过Python tk库显示。并使用Tkinter LabelFrame。

from Tkinter import *

root = Tk()

labelframe = LabelFrame(root, text="")
labelframe.pack(fill="both", expand="yes")

response = '62 F1 11 62 00 00 32 2D 31 34 45 30 39 39 2D 4D 41 30 31'
BResponse = response.replace(' ', '')
BResponse = BResponse.decode('hex')
BResponse = BResponse[3:]

left = Label(labelframe, text="ASCII Conversion::" +' '+ BResponse)
left.pack()

root.mainloop()

获取价值:仅限第一个字符。b

我期待ASCII转换b 2-14E099-MA01

tkinter是否支持ASCII值?

1 个答案:

答案 0 :(得分:1)

问题似乎与Tkinter完全没有关系。当我打印字符串的repr时,我得到'b\x00\x002-14E099-MA01',考虑到位置4和5中的两个00字节,这似乎是正确的。如果您希望将它们渲染为空格,可以相应地替换它们:

>>> BResponse[3:].replace("\x00", " ")
'b  2-14E099-MA01'

更新:似乎存在一种误解:00 不是一个空格,而是一个NULL字节。空格为32,即十六进制中的20(不要与您拥有的32混淆,即50,即2。< / p>

>>> ord(" ")
32
>>> int("32", 16)
50
>>> chr(50)
'2'