Python3では、Unicode文字列がサポートされていないというエラーが発生することがあります。このエラーは、Python2.7では問題なく動作していたコードがPython3で動作しなくなる一因となります。

具体的には、TypeError: unicode strings are not supported, please encode to bytes:というエラーメッセージが表示されます。このエラーは、文字列をバイト列にエンコードする必要があることを示しています。

以下に、このエラーを解決するためのコードスニペットを示します。

import serial, time

def serialcmdw():
    os.system('clear')
    serialcmd = input("serial command: ")
    ser.write(serialcmd.encode())

serialcmdw()

ser = serial.Serial()
os.system('clear')
ser.port = "/dev/cu.usbmodem4321"
ser.baudrate = 9600
ser.open()
time.sleep(1)
serialcmdw()

上記のコードでは、ser.write(serialcmd.encode())の部分で、文字列serialcmdをバイト列にエンコードしています。これにより、Unicode文字列がサポートされていないというエラーを回避できます。

このように、Python3では文字列をバイト列にエンコードすることで、多くのUnicode関連のエラーを解決できます。Python2からPython3への移行をスムーズに行うためにも、この点を理解しておくことが重要です。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です