是否可以将字符串转换为字节数组,然后在 Java 或 Android 中将其转换回原始字符串?
我的目标是将一些字符串发送到微控制器 (Arduino) 并将其存储到 EEPROM(这是唯一的 1 KB)中。我尝试使用 MD5 哈希,但它似乎只是单向加密。我能做些什么来处理这个问题?
原文由 Eng.Fouad 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以这样做。
字符串到字节数组
String stringToConvert = "This String is 76 characters long and will be converted to an array of bytes";
byte[] theByteArray = stringToConvert.getBytes();
http://www.javadb.com/convert-string-to-byte-array
字节数组转字符串
byte[] byteArray = new byte[] {87, 79, 87, 46, 46, 46};
String value = new String(byteArray);
http://www.javadb.com/convert-byte-array-to-string
原文由 Michell Bak 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
我建议使用字符串的成员,但 _使用显式编码_:
通过使用显式编码(以及支持所有 Unicode 的编码),您可以避免仅调用
text.getBytes()
等问题:编辑:尽管 UTF-8 是 Android 上的默认编码,但我肯定会明确说明这一点。例如,这个问题只说“在 Java 或 Android 中”——所以代码最终很可能会在其他平台上使用。
基本上考虑到普通的 Java 平台 可以 有不同的默认编码,我认为最好是绝对明确的。我见过太多人使用默认编码并丢失数据来承担这种风险。
编辑:我在匆忙中忘记提及您不必使用编码 名称- 您可以使用
Charset
代替。使用 Guava 我 真的 会使用: