在含有中文的字符串,不能直接得到字节数,可以通过调用下面的函数得到。
public static int GetStrByteLenth(string str)
{
byte[] bytes = System.Text.Encoding.Unicode.GetBytes(str);//把字符串中每个字符按拆成两个字节
int n = 0;
for (int i = 0; i < bytes.Length; i++)
{
if ((i % 2) == 0)
{
n++;
}
else
{//当UCS2编码的第二个字节大于0时,该UCS2字符为汉字
if((bytes[i]>0))
{
n++;
}
}
}
return n;
}
如:string str = "abc12中国";
GetStrByteLenth(str)
得到的是9个