我刚刚注意到SharedPreferences在存储字符串时会删除回车符(\ r \ n)。由于我不知道这个是非常昂贵的,我想知道它是否删除任何其他字符。换句话说,它是否使用某个字符集。
SharedPreferences sp = activity.getSharedPreferences("preferences", Context.MODE_PRIVATE);
sp.edit().putString("Foo", "\r\nfoo").commit();
//After restarting the app
SharedPreferences sp = activity.getSharedPreferences("preferences", Context.MODE_PRIVATE);
String sFoo= sp.getString("Foo", ""); //returns "\nfoo", not "\r\nfoo"
答案 0 :(得分:2)
早上好,
甚至最糟糕的是:如果将字符串“\ _”存储到SharedPref中,则在终止应用程序后,SharedPref中的值将变为“\ n”。
来自我们心爱的Android平台的另一个错误,非常烦人......
干杯
答案 1 :(得分:1)
换句话说,它是否使用某个字符集。
When you write your SharedPreferences
to the disk,它使用XmlUtils.writeMapXml
,在UTF-8
输出。