1

私はPythonを使用しており、TwitterAPIを使用してユーザーに関するデータを受信して​​います。私が得たのは、jsonでエンコードされた属性のdictです。例えば

{

"id": 123456789,

"name": "ととり~む",

"screen_name": "somescreenname",

"description": "こんにちは♪ キャラ的にはこなたですが好きな子はつかさな私です。 ゲーム・漫画・アニメならなんでも好きです。 気が合う方はよろしくお願いします。 ",

}

注:これは私が受け取る正確な口述ではありませんが、質問のために要約されています。

私のユーザーの中には、おそらく日本語の別の言語でデータを持っている人もいます。ユーザーの「名前」を保存したい。私が使用するとき:

data["name"].encode('utf8')

私はまだこのようなキャラクターのいくつかを失うことになります ̄ ᄄ ̄データを失いたくないのですが、ここで適用できる最良のメカニズムは何ですか?

4

1 に答える 1

3

実際にはデータを失っていないことがわかると思います。あなたはできるはずです:

data['name'].encode('utf8').decode('utf8') 

元の文字列を取得します。中間bytesオブジェクトをディスクに書き込み、後で読み込んでデコードし、同じ効果を得ることができます。

あなたが心配しているように見えるのは、エンコードされた文字列を印刷するときに出てくる正方形やその他のナンセンスです.これは、データの損失ではなく、ほぼ確実に表示の問題です. おそらく、端末が別のエンコーディングでバイトを解釈しようとしているため、Mojibakeが発生しています。プログラムでエンコーディングを正しく保つように注意している限り、問題は発生しません。上記のラウンドトリップを実行できることを確認してください。

于 2012-06-04T07:44:06.433 に答える