通常の文字列を使用して作成した単純な Google App Engine アプリがあります。Unicode を扱えるようにしたいと思っています。これに問題はありますか?現在、ライブ データベースに既にあるすべての文字列について考えています。(動揺させたくない実際のユーザーから。)
3 に答える
Alexander Kojevnikovは次のように述べています。「データストアは内部的にすべての文字列を Unicode で保持しています。」
つまり、アプリケーションはすでにどこでも Unicode を使用しています。賢明なAPIを提供してくれたGoogleの人々に感謝します。これ以上の作業は必要ありません。
データストアは内部的にすべての文字列を unicode で保持します。
db.TextProperty() に保存するときは、次のように db.Text() を使用する必要があります。
instance.xml = db.Text(xml_string, encoding="utf_8")
文字列に BOM がない場合は、正しいエンコーディングを指定します。XML ストリームから予期しない Unicode データを取得した場合と同様です。
これは、Amazon.com の製品 API を使用しているときに発生しました。
また、Google の urlfetch には、そのストリームを扱うユニコードの問題がありました。そのため、問題を修正するために、ストリームのように機能する urllib.urlopen() のリターンで parseString() の代わりに minidom の parse() 関数を実行することになりました:
response = urllib.urlopen(url)
xml = minidom.parse(response)