例如:界面输入:aaaa中国人 
数据库中字段为:varchar2(6),所以我只想要"aaaa中"
但用string.length<=6的话得到的是"aaaa中国",不合要求,该怎么处理呀,

解决方案 »

  1.   

    数据库改为nvarchar,或者判断全角半角的长度。
      

  2.   

    if (Encoding.Default.GetBytes(string.Empty + c).Length > 1)
        MessageBox.Show("全角");
    else MessageBox.Show("半角");全角算2位,半角算1位。
      

  3.   

    再问一下:encoding我找不到这个函数,是什么引用空间下的
      

  4.   

                string str = "aaa中国人";
                byte[] bytes = UnicodeEncoding.Unicode.GetBytes(str);
                char[] chars = UnicodeEncoding.Unicode.GetChars(bytes, 0, 8);
                StringBuilder sb = new StringBuilder();
                sb.Append(chars);
                Console.WriteLine(sb);输入结果: aaa中
      

  5.   

    Encoding.Default.GetBytes(string类型变量).Length 
    取得正确占位数