我建议使用字符串的成员,但与显式编码:
byte[] bytes = text.getBytes("UTF-8");
String text = new String(bytes, "UTF-8");
通过使用显式编码(和支持所有的Unicode),你避免了只是调用text.getBytes()等问题:
>您明确使用特定的编码,因此您知道以后使用哪种编码,而不是依赖于平台默认。
>你知道它将支持所有的Unicode(而不是像ISO-Latin-1)。
编辑:虽然UTF-8是Android上的默认编码,我一定会明确这一点。例如,这个问题只说“在Java或Android” – 所以它完全可能的代码将最终被用于其他平台。
基本上,正常的Java平台可以有不同的默认编码,我认为最好是绝对明确。我看到太多的人使用默认编码和丢失的数据,冒这个风险。
编辑:在我的急速我忘了提及,你不必使用编码的名称 – 你可以使用一个字符集。使用Guava我真的会使用:
byte[] bytes = text.getBytes(Charsets.UTF_8);
String text = new String(bytes, Charsets.UTF_8);