Pythonお悩み解決-エラーメッセージ解説こんにちは、PyQサポートです。いうエラーの意味と、その解消方法を解説します。文字列をエンコードするときに、このようなエラーになることがあります。質問を見ていきましょう。いうエラーが出ました。range(128)はUnicodeEncodeErrorとあるように、「文字列のエンコード」に関するエラーです。今回は「こんにちは」のような日本語の文字列を「ASCII」という文字コードでエンコードしようとして、このエラーが発生しました。ついて知る必要があります。文字列のエンコードとはファイルを読み書きするときなど、文字はバイト列で表されます。文字とバイト列の対応関係は「文字コード」と呼ばれ、今回エラーが発生した「ASCII」も文字コードの1つです。文字コードには他にもさまざまな種類がありますが、現在は「UTF-8」「Shift_JIS」などがよく使われています。「こんにちは」という文字列のバイト列(UTF-8の場合)は以下のようになります。言います(これを「文字エンコーディング」とも言います)。上記の例であれば、「こんにちは」という文字列を「UTF-8」でエンコードした、ということです。ASCIIでエンコードできなかったのか?文字コードが表現する文字の集合を「文字集合」と言い、前述の「UTF-8」や「Shift_JIS」はその文字集合に「日本語文字」を含みます。それに対し「ASCII」の文字集合は英数字が主で、日本語文字は含まれていません。そのため、「こんにちは」という文字列を「ASCII」でエンコードしようとすると、エンコードできずにUnicodeEncodeErrorとなるのです。類似のケース:ファイルへの書き込み今回の例では、文字列のencode()メソッドを使ってエンコードしました。類似のケースとして、ファイルへの書き込み時に同様のエラーになることがあります。range(128)ファイル書き込み時にも、open()関数のencodingに指定した文字コードでエンコードが行われるためです。UnicodeEncodeErrorが発生した場合は、文字コードの指定が適切かを確認しましょう。(Microsoftコードページ932)でデコードしているために発生します。デコードとエンコードで文字コードを揃えれば、エラーは起きません。詳しくは以下の記事を御覧ください。13:00このブログはPyQ開発スタッフが運営しています。技術書1冊分の価格ではじめるPython独学プラットフォームです。Pythonの基本から機械学習・データ分析まで、実際にコードを書きつつブラウザだけで学べます。Pythonお悩み解決で紹介しているような疑問が解決できるプラン(スタンダードプラン)もあるので、プログラミング学習をサポートする先輩プログラマーのような存在が必要になったときには、是非検討してみてくださいね。»Python学習チャンネルPython独学プラットフォームPyQ(パイキュー)の公式ブログです。PyQのリリース情報やカリキュラム紹介だけでなく、プログラミング学習者向けにPythonのQ&A、プログラミング学習tipsなどを配信しています。reserved.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。