private int GetCharLength(string value)
{
char[] chars = value.ToCharArray();
int byteArray = 0;
for (int i = 0; i < chars.Length; i++)
{
int tempByte = System.Text.Encoding.UTF8.GetByteCount( chars[i].ToString());
if (tempByte > 2)
{
byteArray += 2;
}
else
{
byteArray += 1;
}
}
return byteArray;
}
网上找到的方法
int byteCount = System.Text.Encoding.Default.GetByteCount("一二三");
有一个缺陷
在Win平台上面获取长度为6
但是,在Android平台上获取长度的时候 上面的结果为9
这是因为Android平台System.Text.Encoding.Default 是 UTF8的编码格式 UTF8编码一个中文字符长度为3
我没能在网上找到对应的文章 所以记一下方便大家搜索