mah*_*hdi -1 java string android
我需要一个解决方案将String转换为字节数组而不改变如下:
输入:
String s="Test";
Run Code Online (Sandbox Code Playgroud)
输出:
String s="Test";
byte[] b="Test";
Run Code Online (Sandbox Code Playgroud)
我用的时候
s.getBytes();
Run Code Online (Sandbox Code Playgroud)
然后答复是
"[B@428b76b8"
Run Code Online (Sandbox Code Playgroud)
但我希望得到答复
"Test"
Run Code Online (Sandbox Code Playgroud)
您应始终确保序列化和反序列化使用相同的字符集,这会将字符映射到字节序列,反之亦然.默认情况下,String.getBytes()和new String(bytes)使用默认字符集,该字符集可能是特定于语言环境的.
使用getBytes(Charset)重载
byte[] bytes = s.getBytes(Charset.forName("UTF-8"));
Run Code Online (Sandbox Code Playgroud)
使用新的String(bytes,Charset)构造函数
String andBackAgain = new String(bytes, Charset.forName("UTF-8"));
Run Code Online (Sandbox Code Playgroud)
Java 7还添加了java.nio.charset.StandardCharsets类,因此您不再需要使用狡猾的String常量
byte[] bytes = s.getBytes(StandardCharsets.UTF_8);
String andBackAgain = new String(bytes, StandardCharsets.UTF_8);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |