string strTmp = "abcdefg某某某";int i = System.Text.Encoding.Default.GetBytes(strTmp).Length; i=13;  是怎么算出来的,System.Text.Encoding.Default.GetBytes(strTmp)返回的是什么

解决方案 »

  1.   

    某=2位子
    abcdefg=7个字符
    英文占用一个字符。
    中文是2个字符
      

  2.   

    System.Text.Encoding.Default.GetBytes(strTmp)返回一个字节数组 byte[]
      

  3.   

    System.Text.Encoding.Default.GetBytes(strTmp) {次元:[13]} byte[]
            [0] 97 byte
    [1] 98 byte
    [2] 99 byte
    [3] 100 byte
    [4] 101 byte
    [5] 102 byte
    [6] 103 byte
    [7] 150 byte
    [8] 94 byte
    [9] 150 byte
    [10] 94 byte
    [11] 150 byte
    [12] 94 byte
      

  4.   

      string strTmp = "abcdefg某某某"; int i = System.Text.Encoding.Default.GetBytes(strTmp).Length; i=13;    " strTmp.Length=10 "直接取长度会怎么会等于10?
      

  5.   

    String.Length 返回此实例中 Char 对象的个数,而不是 Unicode 字符个数。
    原因在于一个 Unicode 字符可能会用多个 Char 表示。