如何将 netty ByteBuf 转换为 String,反之亦然

How to convert a netty ByteBuf to a String and vice versa

有没有办法将 netty ByteBuf 转换为 String,反之亦然?

public String toString(ByteBuf b){

 //return b enconded to a String
}

public Bytebuf ToByteBuff(String s){

  //return s decoded to Bytebuf
}

您可以使用ByteBuf.toString(Charset) 转换为字符串。

您可以使用String.getBytes(Charset) and Unpooled.wrappedBuffer(byte[])转换为ByteBuf。

您可以使用 Unpooled.copiedBuffer(String, Charset) 从字符串创建 ByteBuf

将ByteBuf转成String,需要:

 public void channelRead(ChannelHandlerContext ctx, Object msg) {
        ByteBuf in = (ByteBuf) msg;
        String clientMessage = in.toString(CharsetUtil.UTF_8);

String转ByteBuf需要:

 String message = "text";
 ByteBuf in = Unpooled.wrappedBuffer(message.getBytes());