在Java或Android中是否可以将字符串转换为字节数组,然后将其转换回原始字符串?
我的目标是将一些字符串发送到微控制器 (Arduino) 并将其存储到 EEPROM(这是唯一的 1 KB)中。我尝试使用MD5 http://en.wikipedia.org/wiki/MD5哈希,但似乎这只是单向加密。我可以做什么来处理这个问题?
我建议使用 string 的成员,但是使用显式编码:
byte[] bytes = text.getBytes("UTF-8");
String text = new String(bytes, "UTF-8");
通过使用显式编码(以及支持所有 Unicode 的编码),您可以避免仅调用的问题text.getBytes()
etc:
- 您显式地使用特定的编码,因此您知道稍后要使用哪种编码,而不是依赖于平台默认值。
- 您知道它将支持所有 Unicode(而不是 ISO-Latin-1)。
编辑:尽管 UTF-8 是 Android 上的默认编码,但我肯定会明确说明这一点。例如,这个问题只说“在 Java 或 Android 中”——所以代码最终完全有可能在其他平台上使用。
基本上考虑到普通的Java平台can有不同的默认编码,我认为最好是绝对明确的。我见过太多人使用默认编码并丢失数据来承担这种风险。
编辑:在我的匆忙中,我忘记提及您不必使用编码name- 你可以使用Charset
反而。使用Guava http://guava-libraries.googlecode.com I'd really use:
byte[] bytes = text.getBytes(Charsets.UTF_8);
String text = new String(bytes, Charsets.UTF_8);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)