判断字节字数

首先要明确的是在我们写入到数据库db中的字段的长度varchar(10),这个10是代表是十个字节

1字节(Byte)=8字位bai=8个二du进制zhi数
1字位(bit)=1个二进制数
1B=8b
1KB=1024B
1MB=1024KB
1GB=1024MB

通常情况下,把baiB称为字节、b称为字位、KB称为千字节、MB称为兆字节、GB称为吉字节

字节是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位

那么有的时候,一堆复杂的字符怎么算呐,难受:

ROG幻15 15.6英寸4K屏创意设计师本(R9 - 5900HS / GeForce RTX™3070 / 16G / 1TGSSD)月耀白

这个网址计算的是:83个字符,大差不差

 在网上找的一个方法,大差不差,字节多少,还跟编码有关系,

 public static int  returnNum(string str)
        {
            int charNum = 0; //统计字节位数
            char[] _charArray = str.ToCharArray();
            for (int i = 0; i < _charArray.Length; i++)
            {
                char _eachChar = _charArray[i];
                if (_eachChar >= 0x4e00 && _eachChar <= 0x9fa5) //判断中文字符
                    charNum += 2;
                else
                    charNum += 1;
            }

            return charNum;
        }
1.在C# 语言中使用string 字符串Unicode 编码
2.在C#语言中常用汉字 占 3个字节
方式1:使用默认编码类获取字节长度
Console.WriteLine(Encoding.Default.GetByteCount("张三"));//输出:6
//常用 一个字母,数字 一个字节
Console.WriteLine(Encoding.Default.GetByteCount("ab")); //输出:2

方式2:
//常用汉字 ,一个汉字 3个字节
Console.WriteLine(ASCIIEncoding.Default.GetBytes("张网").Length); //输出:6
Console.WriteLine(UnicodeEncoding.Default.GetBytes("张网").Length); //输出:6
二、在字符串判断中,由于中文和英文 占据宽度不同,有时需要根据字节长度控制字符串数量
会用到字节长度判断。
人各有命,上天注定,有人天生为王,有人落草为寇。脚下的路,如果不是你自己的选择,那么旅程的终点在哪,也没人知道。你会走到哪,会遇到谁,都不一定。
原文地址:https://www.cnblogs.com/ZkbFighting/p/14392347.html