UTF-32UnicodeDecodeError私が使用して、バイトタイプをデコードしようとすると、次のエラーを取得していますのPython 3.4を使用して
Traceback (most recent call last):
File "c:.\SharqBot.py", line 1130, in <module>
fullR=s.recv(1024).decode('utf-32').split('\r\n')
UnicodeDecodeError: 'utf-32-le' codec can't decode bytes in position 0-3: codepoint not in range(0x110000)
とUTF-16
にそれを解読しようとすると、以下のFile "c:.\SharqBot.py", line 1128, in <module>
fullR=s.recv(1024).decode('utf-16').split('\r\n')
UnicodeDecodeError: 'utf-16-le' codec can't decode byte 0x0a in position 374: truncated data
utf-8を使用してデコードすると、エラーは発生しません。
b':tmi.twitch.tv 001 absolutelyabot :Welcome, GLHF!\r\n:tmi.twitch.tv 002 absolutelyabot :Your host is tmi.twitch.tv\r\n:tmi.twitch.tv 003 absolutelyabot :This server is rather new\r\n:tmi.twitch.tv 004 absolutelyabot :-\r\n:tmi.twitch.tv 375 absolutelyabot :-\r\n:tmi.twitch.tv 372 absolutelyabot :You are in a maze of twisty passages, all alike.\r\n:tmi.twitch.tv 376 absolutelyabot :>\r\n'
UTF-16にデコードしようとしたとき、私は何か間違ったことをやっているとします。■80
それは、次の受信ポートの攣縮IRCサーバirc.chat.twitch.tvに接続されたソケットであります32?私がutf-32を使用する理由は、utf-8にない文字を送信することがあり、utf-8がその文字をサポートしていないため、エラーを返す代わりにその文字を受信できるようにするためです。 ありがとうございました。 UTF-8としてdecode
INGが動作していない場合
たとえば 'decode( 'utf-8'、errors = 'replace')'を使用します。 –
私はすべて一緒にエラーを回避しようとしていない、私はutf - 8でサポートされていない文字を受信しようとしている。 –
したがって、UTF-8を使用して行全体をデコードすることができます。例外がスローされた場合は、*のみ、代替の文字セット*を試してください。私は組み込みNULのためにIRCプロトタイプがUTF-16,32 * ever *を許可するのではないかと疑う。 –