我正在从用户设备收集数据以进行分析。我有一些代表事件名称的最终静态字符串(例如“ banner_click ”)。当适当的事件发生时,事件名称存储在sqlite数据库中,然后我定期将它们从DB读入JsonObject并发出HTTP请求以将收集的数据发送到我们的服务器,但有时我们会得到损坏的事件名称(“banner_clÄ ±ck “而不是” banner_click “,”我“在所有这些情况下都被替换为”ı“。这种情况很少发生,但它让我担心。所以我想知道如何使常量字符串被破坏,我自己无法重现它。我现在唯一的猜测是它是一个特定于设备的问题。
答案 0 :(得分:4)
i
中的click
实际上是ı
,即LATIN SMALL LETTER DOTLESS I.它的UTF-8是0xc4 0xb1
,并将这些字节解释为ISO-8859 -1给出ı
。
将字符修改为常规i
。
在处理非ASCII时,请注意你的字符编码。