0

blob (byte[]) を Google App Engine データストアに保存した後、「?」データストアから同じデータを取得した後にデータに追加されました。

これはエンコーディングに関係しているという考えがあります.GAEのデフォルトのエンコーディングが何であるかわからないので、いくつかの文字セットを試してみましたが、異なる結果が得られました. .

私の DBHelper クラス (Util to save and get data) で、最初にデータを永続化したとき:

Entity resultEntity = new Entity("Entity");
resultEntity.setProperty("HtmlResult", new Blob(str.getBytes()))

'?' が表示されます。結果の最後に追加されます (ローカル データストアから取得したデータ)

私のコードを以下に変更した後:

resultEntity.setProperty("HtmlResult", new Blob(str.getBytes(Charset.forName("UTF-8"))));

次に、�� を結果に追加します。

ISO-8859-1また、 を使っていたときは � だったと思います。よくわからなくて申し訳ありませんが、テストする前に毎回 GAE にデプロイする必要がありました。

この質問は、Hosted GAE のデータストアに関連しています。Google アプリ エンジンは「?」を追加します。データ取得中の文字ですが、直接ではありません。

ご提案をお願いします。

吉:私もやってみました

<env-variables>
 <env-var name="DEFAULT_ENCODING" value="UTF-8" />
</env-variables> 

この問題はローカル マシンでは発生しないことに注意してください。Google アプリ エンジンでアプリをデプロイしてテストする場合にのみ発生します。

4

1 に答える 1

0

これは役に立ちます:http://blog.notdot.net/2010/07/Getting-unicode-right-in-Python

于 2012-05-06T19:00:51.997 に答える