首页 > 其他 > 详细

String的length()和getBytes().length

时间:2020-07-09 19:00:35      阅读:110      评论:0      收藏:0      [点我收藏+]

String的length()和getBytes().length

最近在做项目改造,涉及到自定义socket通讯协议。

协议通常是这样的:

报文分为报文头和报文体。报文头为固定长度,比如6个字节,这6个字节是后面报文体的长度。netty在解码是需要根据报文头的长度信息,确定报文是否全部接收完成。

一开始测试的时候,报文体长度使用的是String的length()方法获取。结果偶尔会出现服务端解码失败。

分析问题是报文中有中文字符。而中文字符一般需要2个或以上字节(根据编码不同,数量不同)。但是String的length()中只占一个位置。

所以需要使用String的getBytes().length获取报文体的byte数据长度。

String的length()和getBytes().length

原文:https://www.cnblogs.com/jimmyfan/p/13274978.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!