0

私がやっていることは次のとおりです。

  • JavaScript 経由で Web ページの DOM を読み取る
  • json文字列への変換
  • ajaxとしてpythonに送信
  • Python では、json は文字列をオブジェクトにデコードします

私が望むのは、文字の問題を回避するために、json の一部であるテキストを Unicode にすることです。私はこれにbeautifulsoupを使用していました:

from bs4 import * 
from bs4.dammit import UnicodeDammit
text_unicode = UnicodeDammit(text, [None, None], "html", True).unicode_markup

しかし、それはjson文字列では機能しません。UnicodeDammit を介して文字列を実行すると、json デコードしようとするとエラーが発生します。

問題は、DOM を収集してもこの問題が自動的に処理されないかどうかさえわかりません。

したがって、まず、一連のテスト Web ページでこれをテストしたいと思います。1 つは utf-8 でエンコードされ、もう 1 つは別のものなどでエンコードされます。たとえば、utf-8 だと思っていてもそうではない場合、間違って見える文字が使用されます。Web ページに記載されているエンコーディングについては、気にしません。これはあまりにも多くの場合間違っています。

4

1 に答える 1

0

存在しない問題を解決しようとしています。

ブラウザーは、Web ページのエンコードを検出して処理する役割を果たします。サーバー ヘッダー、HTML ページのメタ タグ、および必要に応じて単純な推測に基づいて、正しいエンコーディングを決定します。DOM は Unicode データを提供します。

JSON は Unicode データを処理します。JSON データを Python プロセスに送信すると、適切にエンコードされたバイト データが送信され、適切な JSON ライブラリが Unicode 値に変換されます。Pythonjsonモジュールはそのようなライブラリです。

json.load()またはjson.loads()関数をそのまま使用して、JavaScript スクリプトからデータをロードするだけです。ブラウザーはすでに正しいエンコーディング (ほとんどの場合 UTF-8) を使用しており、Pythonjsonモジュールは、追加の構成や処理を行わなくても、使用されている標準エンコーディングをデコードします。

于 2013-06-14T11:28:28.147 に答える