字符编码中的英文字母、汉字占有的字节长度。

ASCII方式:一个英文字母占一个字节,不能保存汉字;

UTF8方式:一个英文字母占一个字节,一个汉字占三个字节;

unicode方式:一个英文字母和一个汉字都占两个字节。

基于TCP的Socket服务端:

1、客户端以UTF8编码发送数据,假如发送的数据是汉字的情况下

服务端进行接收的时候,接收的缓冲区的长度必须至少大于等于3个字节。
byte[] buffer = new byte[length] // length的长度>=3

2、客户端以unicode编码发送数据,假如发送的数据是汉字的情况下
服务端进行接收的时候,接收的缓冲区的长度必须至少大于等于2个字节
 byte[] buffer = new byte[length]  // length的长度>=2


socket编程中接收的信息出现乱码和不全的情况,有相当部分原因是这方面引起的。
原文地址:https://www.cnblogs.com/frustrate2/p/3314944.html