How can I get the string from a netty ByteBuf
? As of now I am able to get it character by character. Is there a way to get the string object directly?
// message is of type ByteBuf
for (int i = 0; i < message.capacity(); i++) {
byte b = message.payload().getByte(i);
System.out.print((char) b);
}
Use the provided method ByteBuf.toString(Charset) .
use ByteBuf.readCharSequence()
example is here:
// here we use utf-8 decoding, you can choose the charset you want
String s = ByteBuf.readCharSequence(length, Charset.forName("utf-8")).toString()
note that ByteBuf.readCharSequence()
returns java.lang.CharSequence
, use toString()
to get String
obejct
cilki
From there you can use new String(byte[])
or some Base64 solution (since it's binary data I'm assuming)
来源:https://stackoverflow.com/questions/38164891/getting-string-from-netty-bytebuf