winform里  怎么获取字符串占几个字节啊,  字符串有可能包含汉字、字母,所以这么求请大家不吝赐教啊,

解决方案 »

  1.   


    string str = "123abc";
    Byte[] data = System.Text.Encoding.Unicode.GetBytes(str);
    int length = data.Length;
      

  2.   

      /// <summary>
            /// 控制审批意见用户输入数据的长度,英文最多218个,汉字最多109个,共218字节
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void AuditNote_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
            {
                //获取输入的字节数
                int intLong = System.Text.Encoding.Default.GetByteCount(this.AuditNote.Text.Trim());            //如果多于218个字节,就禁止输入
                if(intLong>=218)
                {
                    e.Handled = true;
                }
                //当达到218字节时,如果按退格则仍让继续操作,否则禁止输入
                if(e.KeyChar==(char)0x08)
                {
                    e.Handled = false;
                }
            } 说明:       AuditNote是一个TextBox       实现功能:限制文本框AuditNote的输入长度,英文字母218个,汉字109个,因为默认一个字母占1个字节,一个汉字占两个字节。
      

  3.   

    Encoding.Unicode.GetByteCount("中国人10个");c#使用unicode编码字符串的。
      

  4.   

    提示:string”并不包含“getBytes”的定义
      

  5.   

    本来就就一样,c#使用unicode编码字符串的,unicode中汉字和字母都用2个字节存储。
      

  6.   

    你要不一样,用Encoding.GetEncoding("gb2312").GetByteCount("中国人10个");
      

  7.   


    int length1 = System.Text.Encoding.GetEncoding("GB2312").GetBytes("ab").Length;
    int length2 = System.Text.Encoding.GetEncoding("GB2312").GetBytes("你好").Length;