私は、いくつかのウェブサイトからいくつかのデータを取得してデータベースに保存することを目的としたプロジェクトに取り組んでいます。ただし、これらの Web サイトには、utf-8、gbk などの異なる文字セットが含まれています。取得したデータはユニコードなので、いつ文字列に変換するのが正しい方法なのだろうか。今のところすぐに文字列に変換しますが、python は unicode をできるだけ長く保持するように提案しているようですが、理由がわかりませんか? Unicode オブジェクトの文字セットが常にわからないためです。
2 に答える
1
unicode
s には文字セットがありません。それらは純粋なテキストです。バイトのみが受け入れられるメディアで保存または送信する場合にのみ、バイト文字列に変換します。
于 2013-07-08T01:35:17.930 に答える
1
アプリでテキストを処理するための推奨事項は次のとおりです。
- ある場所から入力バイト (エンコードされた文字列) を取得します
- それらをデコードして
Unicode
、Unicode
アプリ内で操作します。 - テキストを出力したいときはいつでも、それをエンコードしてください。
BeautifulSoup
Web ページをフェッチしている場合、着信バイトを Unicode に変換するジョブを実行する他のライブラリを見てきました。したがって、アプリでは、Unicode でそれらを操作できます。
データベースに保存する場合は、おそらくデータベースが でエンコードされている可能性がありますutf-8
。そうでない場合は、そのエンコードが何であるかを学び、情報をデータベースに書き込む準備ができたら、最初にエンコードします。
text = text.encode('utf-8') # or the encode used by your DB
db.persist(text) # pseudocode here ;)
このようにして、入力と出力のために、アプリの前にユニコード保護レイヤーを作成します。
お役に立てれば!
于 2013-07-08T01:49:54.927 に答える