请问为什么在C#里中文长度被识别为单字节?在VB6.0的时候,可以使用lenb()这个函数能以双字节方式来统计中文长度,而小弟我接触C#后,为什么中文是以单字节来统计长度的?
请问如何在C#下,使用双字节的形式来统计中文长度?如:VB6.0
n=lenb("你好")     得到的结果为n=4而为什么在C#里我使用
m = "你好";
resize = m.Length;得到的结果是resize=2请问如果让resize=4?

解决方案 »

  1.   

    看下MSDNstring test = "你好abc";  
    int clen = test.Length;  //这样是字符数
    int blen = System.Text.Encoding.Default.GetByteCount(test);  //这样才是字节数
      

  2.   

    什么叫正确长度?.net里的字符是unicode的   
      你如果想获取字串的字节数,应该可以用Encoding类的   
      GetByteCount方法吧   
      System.Text.Encoding.Default.GetByteCount(str_zzz);   
      Default使用系统默认的code   page  
      

  3.   

    转:
    //取字符串长度  
      s   =   "iam方枪枪";  
      int   len   =   s.Length;//will   output   as   6  
      byte[]   sarr   =   System.Text.Encoding.Default.GetBytes(s);  
      len   =   sarr.Length;//will   output   as   3+3*2=9
      

  4.   

    呵呵 编码不同导致的, 有固定的转换类,LS的LS的LS(的LS(的LS))都说过了