Java 中 string 与 bytes 的转换总结

发布于 2023-03-10 12:36:35 字数 814 浏览 95 评论 0

那如何将 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

等风来

暂无简介

文章
评论
27 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文