3

文字列があるとしましょう

Bruce Wayne is Batman

この文字列を HTML 文字に変換すると、出力は次のようになります。

Bruce Wayne is Batman

Python 2.7でこれを行う方法を見つけようとしています。誰でもそれを行う方法を提案できますか?

私はstackoverflow全体を検索しましたが、見つけたすべての答えは、HTML特殊文字をエスケープする方法です。私は特殊文字をエスケープするつもりはなく、すべての文字列を HTML char に相当するものに変換します。mozilla firefox の hackbar アドオンはそれを正常に実行できます。Python を使用して同じことを実装したいと考えています。

また、HTMLParse ライブラリは、unescape() モジュールを使用して正常にデコードできます。上記の方法でエンコードするためのPythonのライブラリはありますか?また、ツールに依存関係を追加しないため、組み込みライブラリではなく、BeautifulSoup のような外部ライブラリを探していません。

4

1 に答える 1

1

私の知る限りでは、標準ライブラリにはこれを行うものは何もありません (エンティティ参照としてすべての文字をエンコードする必要があるのは一般的ではありません) が、変換を行う関数は簡単です:

def entitify(text):
    return ''.join('&#%d;' % ord(c) for c in text)

>>> entitify('Bruce Wayne is Batman')
'Bruce Wayne is Batman'

>>> entitify(u'Rinôçérôse')
'Rinôçérôse'

この関数は、ord()ビルトインを使用して各文字のバイト値またはコード ポイントを取得し、それを でラップしてから&#...;、結果を結合します。

于 2016-12-30T12:36:55.000 に答える