HTML から特殊文字を変換する際に奇妙な問題があります。テキストが HTML エンコードされて MySQL データベースに保存される Django プロジェクトがあります。テキストの書式設定を失いたくないので、これが必要です。
準備段階では、位置の計算など、テキストに対して操作を行う必要があるため、最初にテキストを変換して、すべての HTML タグからクリアする必要があります。これは BeautifulSoup によって行われます。
convertedText = str(BeautifulSoup(text.text, convertEntities=BeautifulSoup.HTML_ENTITIES))
convertedText = ''.join(BeautifulSoup(convertedText).findAll(text=True))
私のDjango-defaultテストサーバーで作業すると、すべて正常に動作しますが、本番サーバーで実行すると、特殊文字を変換するときに奇妙な動作が発生します.
例:
テストサーバー
MySQL-クエリは私に与えます:<p>bassverstärker</p>
は正しく次のように変換されます:bassverstärker
本番サーバー
MySQL-クエリは私に与えます:<p>bassverstärker</p>
これは間違って次のように変換されます:bassverst\ucc44rker
どういうわけか にä
変換され\ucc44
、これは間違った文字になります。
私の構成:
テスト サーバー:
- Django 組み込みソリューション (
python manage.py runserver
) - 美しいスープ 3.2.1
- パイソン 2.6.5
- Ubuntu 2.6.32-43-ジェネリック
本番サーバー:
- チェロキー 1.2.101
- 美しいスープ 3.2.1
- パイソン2.7.3
- Ubuntu 3.2.0-32-ジェネリック
どのレベルでエラーが発生するか分からないので、どなたか教えていただけないでしょうか。よろしくお願いします。