Java 中 string 与 bytes 的转换总结
那如何将 string,转换为 byte[]
?其实 Java 提供了现成的实现: java.lang.string.getbytes();
用法: byte[] b=str.getBytes(charsetName)
string str="示例文字"; // 不设置字节序时候,默认为大端模式 byte[] b=str.getBytes("UTF-16"); // 结果==0xFE,0xFF,0x53,0x57,0x4E,0xAC // 转为可见字符后发现多出了2个字节,即粗体的两个字节,其实这两个字节不是汉字 示例文字 所对应的,它是 getbyts 方法在返回结果前加的 // 用来标识输出 byte 数组字节序的,FEFF 为大端,FFFE 为小端
// 那如何指定转换后的字节序呢,其实在编码后面家 BE 或 LE 就可以了 byte[] b1_be=str.getBytes("UTF-16BE");//BE 为大端,结果==0x53,0x57,0x4E,0xAC byte[] b1_le=str.getBytes("UTF-16LE");//LE 小端,结果==0x4E,0xAC,0x53,0x57 // 上面示例可见,指定字节序后,getbytes 方法返回的内容为4个字节,前缀没有了字节序标识。
有编码就有解码,那如何将 byte 数组按照某编码方式转换为字符串,也就是 getbytes 的反向操作。
// 给定字节数组后,需要指定字节序 String productNo = new String(b1_be,"UTF-16BE"); System.out.println(productNo); // ==示例文字
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论