[解決済み] Python - 'ascii'コーデックがバイトをデコードできない
2022-07-23 18:42:31
質問
本当に困っています。エンコードしようとしたのですが、エラーで
can't decode...
.
>>> "你好".encode("utf8")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
文字列のプレフィックスに"u"をつけてエラーを回避する方法はわかりました。ただ、encodeが呼ばれたのに、なぜ"can't decode"というエラーになるのかが不思議です。 Pythonはフードの下で何をしているのでしょうか?
どのように解決するのですか?
"你好".encode('utf-8')
encode
は、unicodeオブジェクトを
string
オブジェクトに変換します。しかし、ここでは
string
オブジェクトに呼び出したのです(uを持っていないので)。そこで python は
string
を
unicode
オブジェクトに変換します。つまり、これは以下のことと同等です。
"你好".decode().encode('utf-8')
しかし、この文字列は有効なASCIIではないため、デコードに失敗します。そのため、デコードできないとの苦情が来るのです。
関連
-
[解決済み] UnicodeDecodeError: 'ascii' コーデックはポジション 1 のバイト 0xef をデコードできません。
-
[解決済み] UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 20: ordinal not in range(128)
-
[解決済み] Pythonでstdoutをパイピングするときに正しいエンコードを設定する
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】"for line in... "でUnicodeDecodeErrorが発生:'utf-8'コーデックはバイトをデコードできない。
-
[解決済み】Unicodeテキストをテキストファイルに書き込む?
-
[解決済み】PythonでUTF-8ファイルに書き込む
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] ファブリックタスクにパラメータを渡す
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] アスキーコーデックがバイト0xe9をデコードできない
-
[解決済み] Pythonでstdoutをパイピングするときに正しいエンコードを設定する
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] Pandas Merge - カラムの重複を回避する方法