在含有中文的字符串,不能直接得到字節數,可以通過調用下面的函數得到。
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個