Java常量字符串在Android中被破坏

时间:2015-04-08 12:46:17

标签: java android sqlite mobile mobile-devices

我正在从用户设备收集数据以进行分析。我有一些代表事件名称的最终静态字符串(例如“ banner_click ”)。当适当的事件发生时,事件名称存储在sqlite数据库中,然后我定期将它们从DB读入JsonObject并发出HTTP请求以将收集的数据发送到我们的服务器,但有时我们会得到损坏的事件名称(“banner_clÄ ±ck “而不是” banner_click “,”“在所有这些情况下都被替换为”ı“。这种情况很少发生,但它让我担心。所以我想知道如何使常量字符串被破坏,我自己无法重现它。我现在唯一的猜测是它是一个特定于设备的问题。

1 个答案:

答案 0 :(得分:4)

i中的click实际上是ı,即LATIN SMALL LETTER DOTLESS I.它的UTF-8是0xc4 0xb1,并将这些字节解释为ISO-8859 -1给出ı

  1. 将字符修改为常规i

  2. 在处理非ASCII时,请注意你的字符编码。