之间有什么区别

"hello world".getBytes("UTF-8");




 Charset.forName("UTF-8").encode("hello world").array();



在大多数情况下,第二个代码生成一个字节数组,结尾处有0字节。

最佳答案

您的第二个片段使用ByteBuffer.array(),它仅返回支持ByteBuffer的数组。这可能比写入ByteBuffer的内容长。

基本上,如果您想从byte[]中获取String,我会使用第一种方法:)您可以使用其他处理ByteBuffer的方法将其转换为byte[],但是鉴于String.getBytes(Charset)是可用且方便,我只用...

ByteBuffer检索字节的示例代码:

ByteBuffer buffer = Charset.forName("UTF-8").encode("hello world");
byte[] array = new byte[buffer.limit()];
buffer.get(array);
System.out.println(array.length); // 11
System.out.println(array[0]);     // 104 (encoded 'h')

关于java - Java字符串编码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25670368/

10-11 03:35