[解決済み] UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 20: ordinal not in range(128)
2022-02-18 23:46:17
質問
異なるウェブページ(異なるサイト)から取得したテキストからUnicode文字を扱うのに問題があります。私はBeautifulSoupを使用しています。
問題は、エラーの再現性が低いことで、あるページでうまくいくこともあれば、あるページでは
UnicodeEncodeError
. 思いつく限りのことを試してみましたが、ユニコード関連の何らかのエラーを出さずに安定して動作するものはまだ見つかっていません。
問題を引き起こしているコードのセクションの1つを以下に示します。
agent_telno = agent.find('div', 'agent_contact_number')
agent_telno = '' if agent_telno is None else agent_telno.contents[0]
p.agent_info = str(agent_contact + ' ' + agent_telno).strip()
上記のスニペットを実行したときに、いくつかの文字列で生成されるスタックトレースを示します。
Traceback (most recent call last):
File "foobar.py", line 792, in <module>
p.agent_info = str(agent_contact + ' ' + agent_telno).strip()
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 20: ordinal not in range(128)
これは、あるページ(より具体的には、いくつかのサイトのページ)がエンコードされており、他のページがエンコードされていない可能性があるためだと思われます。すべてのサイトは英国に拠点を置き、英国で消費されることを意図したデータを提供しています。したがって、内部化に関する問題や英語以外で書かれたテキストを扱うことはありません。
どなたか、この問題を解決する方法をご存知の方はいらっしゃいますか?
解決方法は?
Pythonを読む必要があります。 ユニコードHOWTO . このエラーは 最初の例 .
基本的に
str
を使用して、Unicodeからエンコードされたテキスト/バイトに変換します。
代わりに、正しく
.encode()
を使用して文字列をエンコードします。
p.agent_info = u' '.join((agent_contact, agent_telno)).encode('utf-8').strip()
または、完全にユニコードで動作します。
関連
-
Pythonショートビデオクローラーチュートリアル
-
Python LeNetネットワークの説明とpytorchでの実装
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み】UnicodeEncodeError:'charmap'コーデックは、文字をエンコードできない
-
[解決済み] UnicodeDecodeError: 'charmap' コーデックは、位置YのバイトXをデコードできません:文字は<undefined>にマップされます。
-
[解決済み] UnicodeDecodeError: 'ascii' コーデックは、位置 13 のバイト 0xe2 をデコードできません: 序数が range(128) にありません。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
opencvとpillowを用いた顔認証システム(デモあり)
-
pythonを使ったオフィス自動化コード例
-
python call matlab メソッドの詳細
-
Python カメの描画コマンドとその例
-
Pythonによるjieba分割ライブラリ
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
Python LeNetネットワークの説明とpytorchでの実装
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件