1

MathType を使用して Word 文書から生成している mml を含む html があります。BeautifulSoup を使用して整形する python スクリプトがありますが、問題は、それが ∠ 記号である∠実際のバイト シーケンスに変換されることです。ブラウザで∠として表示されない0xE2 0x88 0xA0ため、これは問題です。0xE2 0x88 0xA0代わりに、ブラウザはそれを一連のラテン文字として解釈します。これは、Δ ∠ − +... などのすべての数学エンティティでも発生しています。

BeautifulSoup のドキュメントを調べたところ、エンティティをバイト シーケンスに変換する方法がわかりましたが、そのコマンドは使用していません。私が使っているのは prettify() だけです。また、BeautifulSoup のドキュメントには、エンティティをバイト シーケンスに変換しない方法がありませんでした。

エンティティをバイト シーケンスに変更しないように指定する設定が BeautifulSoup にあるかどうかは誰にもわかりませんか? prettify の実行後にダメージを元に戻さなければならないのはちょっとばかげているように思えるので、そう願っています :)

よろしくお願いします。

4

1 に答える 1

1

BeautifulSoup のドキュメントの一部を見逃していました。デフォルトの出力フォーマッタは、説明されている動作を行います: HTML エンティティを Unicode 文字に変換します。したがって、この動作は、別の出力フォーマッタを使用して変更できます。(ドー)

「Prettify()、encode()、またはdecode()....へのformatter引数の値を提供することで、この動作を変更できます。」

したがって、formatter="html"Beautiful Soup を渡すと、可能な限り Unicode 文字が HTML エンティティに変換されます。わーい!美しいスープありがとう!

(そして、彼らは素晴らしいドキュメントを持っています。残念ながら、私はすべてをもっと早く読まなかった. :$)

于 2013-04-08T15:02:24.013 に答える