TypeError を修正: Unicode のデコードは Python ではサポートされていません

Zeeshan Afridi 2023年6月21日
  1. Python での TypeError: Unicode のデコードはサポートされていません
  2. Python でのTypeError: Unicode のデコードはサポートされていませんを修正する
  3. まとめ
TypeError を修正: Unicode のデコードは Python ではサポートされていません

この記事では、Python での TypeError: Unicode のデコードはサポートされていません エラーの解決について説明します。

Python での TypeError: Unicode のデコードはサポートされていません

Unicode 文字列は、0 から 0x10FFFF (10 進数で 1,114,111) までの範囲の数字であるコード ポイントのコレクションです。 メモリ内のこの一連のコード ポイントを表すために使用する必要があるコード単位のセットは、8 ビット バイトにマップされます。

文字エンコーディング、または単にエンコーディングは、Unicode テキストを一連のバイトに変換する方法を決定する一連の規則です。 あなたの最初の考えは、コーディング単位として 32 ビット整数を使用し、次に CPU の 32 ビット整数の表現を使用することでした。

最も広く使用されているエンコーディングの 1つは UTF-8 で、Python がデフォルトで頻繁に使用します。 UTF は Unicode Transformation Format の略で、8 はエンコーディングが 8 ビット値を使用することを示します。

UTF-8 ほど一般的ではありませんが、UTF-16 や UTF-32 などの他のエンコーディングもあります。

コード例:

result = unicode(google.searchGoogle(param), "utf-8").encode("utf-8")

出力:

TypeError: decoding Unicode is not supported

Python でのTypeError: Unicode のデコードはサポートされていませんを修正する

このエラーを解決するには、この行 result = Unicode(google.searchGoogle(param), "utf-8").encode("utf-8") の構文を result = google.searchGoogle(param) に変更する必要があります .encode("utf-8"). google.searchGoogle(param) の後に UTF-8 を削除する必要があります。これにより、以下の例に示すように、Unicode のデコードがサポートされていないというエラーが解決されます。

結果 = google.searchGoogle(param).encode("utf-8")

もう 1つは、Python のTypeError: デコーディング str はサポートされていませんです。 これは、オブジェクトを文字列に変換しようと繰り返し試みた場合、または最初にバイト オブジェクトを渡さずに str() メソッドを呼び出した場合に発生します。

コード例:

str("even", str(123))
str("abc", encoding="utf-8")

出力:

TypeError: decoding str is not supported

上記の例では、str クラスが 2 回参照されています。 各呼び出しは他の呼び出し内にネストされます。 適切なバイト オブジェクトが提供されていません。 代わりに、encoding キーワード引数が設定されます。

有効なバイト オブジェクトが指定された場合にのみ、エンコーディングを構成できます。

このエラーを回避するには、書式設定された文字列リテラルを使用できます。 このエラーは、文字列形式インターフェイスまたは最新の形式の文字列リテラルを使用して防ぐことができます。

さらに、これらのオプションは、より強力で適応性が高く、拡張可能な方法を提供します。

str1 = "even"
num1 = 2, 4, 6, 8
result = f"{str1} {num1}"
print(result)

出力:

even (2, 4, 6, 8)

まとめ

出力を UTF-8 にエンコードしたいが、正しい構文を使用していない場合、正しいバイト オブジェクトが提供されていないために Python decoding Unicode is not supported というエラーが発生することがあります。 別のエラー デコーディング str は Python ではサポートされていません。

有効なバイト オブジェクトが提供された場合にのみ、エンコーディングを定義できます。 上記の記事はこれらのエラーを修正します。

著者: Zeeshan Afridi
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

関連記事 - Python Error