Android SharedReference是否使用某个字符集?

Android SharedReference是否使用某个字符集?,android,android-preferences,Android,Android Preferences,我刚刚注意到SharedReferences在存储字符串时会删除回车(\r)。因为我不知道这一点代价很高,我想知道它是否删除了任何其他字符。换句话说,它是否使用某个字符集 SharedPreferences sp = activity.getSharedPreferences("preferences", Context.MODE_PRIVATE); sp.edit().putString("Foo", "\r\nfoo").commit(); //After restarting the a

我刚刚注意到SharedReferences在存储字符串时会删除回车(\r)。因为我不知道这一点代价很高,我想知道它是否删除了任何其他字符。换句话说,它是否使用某个字符集

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"
换句话说,它是否使用某个字符集

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"
,它使用,它以
UTF-8

早上好

更糟糕的是:如果将字符串“\r”存储到SharedPref中,则在终止并重新启动应用程序后,SharedPref中的值将变为“\n”

另一个来自我们钟爱的Android平台的bug,非常烦人


干杯

谢谢你的信息。UTF-8是否排除回车符(\r或0x0D)?为什么“\r”没有映射到U+0013?它与UTF-8(支持所有Unicode字符)无关,与XML(折叠空白字符)无关。顺便说一下,我说“早上好”,因为过滤“hi”和“hello”也是如此。真奇怪!