从 netty ByteBuf 获取字符串
Getting string from netty ByteBuf
如何从 netty ByteBuf
中获取字符串?截至目前,我能够逐个字符地获取它。有没有办法直接获取字符串对象?
// message is of type ByteBuf
for (int i = 0; i < message.capacity(); i++) {
byte b = message.payload().getByte(i);
System.out.print((char) b);
}
Take a look at this
从那里你可以使用 new String(byte[])
或一些 Base64 解决方案(因为我假设它是二进制数据)
使用提供的方法ByteBuf.toString(Charset) 。
使用ByteBuf.readCharSequence()
示例在这里:
// here we use utf-8 decoding, you can choose the charset you want
String s = ByteBuf.readCharSequence(length, Charset.forName("utf-8")).toString()
注意ByteBuf.readCharSequence()
returns java.lang.CharSequence
,使用toString()
得到String
obejct
如何从 netty ByteBuf
中获取字符串?截至目前,我能够逐个字符地获取它。有没有办法直接获取字符串对象?
// message is of type ByteBuf
for (int i = 0; i < message.capacity(); i++) {
byte b = message.payload().getByte(i);
System.out.print((char) b);
}
Take a look at this
从那里你可以使用 new String(byte[])
或一些 Base64 解决方案(因为我假设它是二进制数据)
使用提供的方法ByteBuf.toString(Charset) 。
使用ByteBuf.readCharSequence()
示例在这里:
// here we use utf-8 decoding, you can choose the charset you want
String s = ByteBuf.readCharSequence(length, Charset.forName("utf-8")).toString()
注意ByteBuf.readCharSequence()
returns java.lang.CharSequence
,使用toString()
得到String
obejct