2013-03-02 41 views
0

我在Google App Engine上有一個servlet,它從頁面獲取文本,將其存儲爲實體,然後將其發送回客戶端。當我存儲「你是」這個詞時,我將它在GAE本地存儲中顯示爲「你是」正常。但是,當我將它返回給客戶端時,我會得到「Youâre」,並且調試代碼有時會顯示「Youâ?? re」。我正在使用Java Text類來存儲此文本。將文本存儲在GAE上,正在更改的非標準Unicode字符

如何確保任何Unicode字符可以正確存儲?它看起來像客戶端 - >服務器是好的,因爲文本沒有改變,但服務器 - >客戶端肯定是搞砸了。謝謝!

+0

嗯,我甚至沒有看過GAE,但是如果它在GAE商店中顯示正常,但不是在用戶身上,那麼您可以在將文本數據發送到客戶端之前使用該文本數據進行更改嗎? – 2013-03-02 01:40:40

+0

也許問題是應用程序中的字符編碼和瀏覽器不同,請檢查兩者是否相等 – mulax 2013-03-02 04:08:58

+0

我已將元標記設置爲utf-8,因此它應該在客戶端上正確顯示Unicode。我假設它在服務器上是一樣的,因爲它在那裏顯示正確。 – theeggman85 2013-03-02 21:40:06

回答

1

我已經看到了這個問題的大多數時間,無論是頁面不聲明它使用UTF-8,通過類似

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

accept-charset不在表單中設置。

這兩種情況可能是這種情況嗎?

+0

我正在使用backbone來將我的模型發送到服務器,所以基本上它只是與collection.create()一起發送。它最終只是將自己作爲JSON對象發送到服務器,所以我不確定任何接受字符集。 雖然我在那裏有元標記,但這並不奇怪地改變任何東西。控制檯登錄客戶端也不喜歡字符。也許他們被從服務器發送到客戶端奇怪? – theeggman85 2013-03-02 21:38:24

+0

如果控制檯日誌不滿意,我會仔細研究最初將數據傳遞到服務器的路徑。 – 2013-03-05 00:56:51

+0

我想我找到了問題,但是謝謝! – theeggman85 2013-03-05 05:15:59