2015-04-08 56 views
2

我正在從用戶設備收集用於分析的數據。我有一些表示事件名稱的最終靜態字符串(例如「banner_click」)。當適當的事件發生時,事件名稱被存儲在sqlite數據庫中,之後我定期將它們從數據庫讀取到JsonObject中,併發出HTTP請求以將收集的數據發送到我們的服務器,但有時我們會收到損壞的事件名稱(「banner_clä±ck「代替」_flash_click「,」i「在所有這些情況下被替換爲」±「)。這種情況很少發生,但它讓我擔心。所以我想知道如何來不斷的字符串被破壞,我不能自己重現它。我現在唯一的猜測是這是一個設備特定的問題。Java常量字符串在Android中損壞

回答

4

iclick實際上是ı即拉丁小寫字母無點一,UTF-8,因爲這是0xc4 0xb1和解釋這些字節爲ISO-8859-1給出了ı

  1. 修復該字符爲常規i

  2. 處理非ASCII時請注意字符編碼。

+0

究竟應該如何解決字符是正常的我?我只是有定義的字符串常量的類。如果存在這樣的問題,爲什麼它不會一直髮生? – mdavid

+0

你很可能在你的代碼中有無處不在的地方。 – laalto

+0

您描述了最可能的情況,但我在代碼中找不到任何點少「我」,我不知道如何輸入。我正在檢查我的鍵盤的「我」,它被解釋爲「U + 0069」,這是正常點綴的小寫「我」。 – mdavid