socket默认使用utf8格式传输数据,如果传输的是中文的话,那么1个中文占用3个字节,发送的个数就需要针对性就行修改,不能简单的使用FString::Len()进行个数计算,这里给出一个计算个数的函数,
int32 CalcUtf8NumFromString(const FString & Str)
{
int32 result = 0;
for (int i = 0; i < Str.Len(); i++)
{
if (Str[i] <= 0x7f)
result = result + 1;
else if (Str[i] > 0x7f && Str[i] <= 0x07ff)
result = result + 2;
else if (Str[i] > 0x07ff && Str[i] <= 0xffff)
result = result + 3;
else
result = result + 4;
}
return result + 1;
}