java – 将字符串转换为字节数组,然后返回到原始字符串

是否可以将字符串转换为字节数组,然后将其转换回Java或Android中的原始字符串?

我的目标是发送一些字符串到微控制器(Arduino),并将其存储到EEPROM(只有1 KB)。我试图使用一个MD5哈希,但它似乎只是一种单向加密。我该如何处理这个问题?

最佳答案
我建议使用字符串的成员,但与显式编码:

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);

转载注明原文:java – 将字符串转换为字节数组,然后返回到原始字符串 - 代码日志