不是8
String 类的新实例初始化为由指向 8 位有符号整数数组的指针指示的值。

解决方案 »

  1.   

    是8我还要问吗???在C#中"test中文".Length明明是6,我的问题就是如何取得为8?这个可能是因为C#中Unicode编码的原因。
      

  2.   

    string s = "test中文";
    byte[] test = System.Text.Encoding.Default.GetBytes(s);
    int len2 = test.Length;
      

  3.   

    应该是6,但是如果把他存在byte〔〕 的buffer中将占用8个byte,因为一个unicode字符是两个byte
      

  4.   

    int intLen = 0; //字符串长度
    foreach(byte byteStr in System.Text.Encoding.Unicode.GetBytes("test中文"))
    {
    if (!byteStr.ToString().Equals("0"))
    {
    intLen += 1;
    }}
    MessageBox.Show(intLen.ToString());
      

  5.   

    String.Length返回的是字符串的逻辑长度,也就是字符串内部的字符数组的长度(除去结尾的空字符),所以它返回的是6。
    这里你需要的是字符串编码后的字节数,使用的编码不一样,返回的字节数也不一样,比如使用Unicode返回的是12,UTF7是10。