我们正在尝试使用raspberry pi b +阅读RFID标签。我们在python中使用了以下脚本。
import serial
import time
serial=serial.Serial("/dev/ttyUSB0", baudrate=2400)
while True:
if serial.inWaiting()>0:
read_result=serial.read(12)
print("Read card {0}",format(read_result.decode("utf-8","replace")))
print("Sleeping 2 sec")
time.sleep(2)
serial.flushInput()
在阅读标签时,它会将错误提供为:
File "/home/pi/rfidtry/try.py",line 7, in <module>
print("Read card {0}",format(read_result.decode("utf-8","replace")))
UnicodeEncodeError: 'ascii' codac can't encode character u'\uffd' in position 2
:ordinal not in range(128)
答案 0 :(得分:0)
正如本post所述,如果您首先将unicode字符串编码为ascii然后对其进行解码,则可能会有效。
read_result.encode('ascii','replace').decode('utf-8')
当然,你将失去非工作角色。
答案 1 :(得分:0)
你试过这个吗?
print read_result
并查看它是否有效(而不是)
print("Read card {0}",format(read_result.decode("utf-8","replace")))
答案 2 :(得分:0)
问题在于波特率。 我使用的早期读者是2400 但我现在使用的是9600。