У меня здесь интересная проблема.
Сначала у меня есть пользовательский интерфейс в Java. Пользовательский интерфейс в одной точке подключается к rpi4 в сети через сокет. Оттуда данные отправляются через сокет с использованием .writeUTF (строка).
На стороне rpi4 я запускаю простой Python 3 скрипт. Его единственная цель состоит в том, чтобы выплевывать все, что приходит через сокет, и это происходит. Но перед этим я использую recv.decode ('utf-8') для декодирования строки.
С Java Я отправляю "fillOpen"
In python после декодирования печатает "fillOpen"
Проблема:
Выполнение сравнения строки в сценарии python для декодированной строки всегда приводит к значению false. Я настроил его так:
Command = recv.decode('utf-8')
If Command == "fillOpen":
#Do work
Я также пытался не декодировать строку и сравнивать с закодированной строкой. Таким образом:
Command = recv
FillOpenCommand =
("fillOpen").encode('utf-8')
If fillOpenCommand == Command:
#Do work
Ни одно из этих сравнений не приводит к истине.
Я читал, что Java writeUTF является кодировкой UTF8, но немного "отличается"?
Могу ли я настроить .writeUTF для работы с декодером Python 3? Есть ли альтернатива для отправки данных, которые можно проанализировать, а затем применить строковый комп через Python, который будет работать?
Спасибо, ребята.