zoukankan      html  css  js  c++  java
  • 汉字与字节

    数据库表字段为varchar(n)类型,存英文很简单,只要字母个数不大于n即可。

    但是对于汉字,按照同样的方法就不行了。因为对于汉字不同的字符集,在数据库占用的字节是不一样的。

    UTF-8字符集,一个汉字占三个字节,gbk字符集,一个汉字占两个字节,比如varchar(10)类型的字段,UTF-8的汉字,只能存3个,gbk字符集的汉字却能存5个。

    所以在程序中根据表字段varchar的大小,保存或更新时作出必要的校验否则后台会报错。

    字节就是Byte

    汉字=2/3字节
    1字节(Byte)=8字位=8个二进制数
    1字位(bit)=1个二进制数
    1B=8b   1KB=1024B  1MB=1024KB 1GB=1024MB

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

                string name = "a";
                int num = Encoding.UTF8.GetBytes(name).Length;//1
    
                string name2 = "A";
                int num2 = Encoding.UTF8.GetBytes(name2).Length;//1
    
                string name3 = "";
                int num3 = Encoding.UTF8.GetBytes(name3).Length;//3
    
                string name4 = "0";
                int num4 = Encoding.UTF8.GetBytes(name4).Length;//1
    
                string name5 = "朱朱";
                int num5 = Encoding.UTF8.GetBytes(name5).Length;//6
    英文字母:
    字节数 : 1;  编码:GB2312
    字节数 : 1;  编码:GBK
    字节数 : 1;  编码:GB18030
    字节数 : 1;  编码:ISO-8859-1
    字节数 : 1;  编码:UTF-8
    字节数 : 4;  编码:UTF-16
    字节数 : 2;  编码:UTF-16BE
    字节数 : 2;  编码:UTF-16LE
    中文汉字:
    字节数 : 2;  编码:GB2312
    字节数 : 2;  编码:GBK
    字节数 : 2;  编码:GB18030
    字节数 : 1;  编码:ISO-8859-1
    字节数 : 3;  编码:UTF-8
    字节数 : 4;  编码:UTF-16
    字节数 : 2;  编码:UTF-16BE
    字节数 : 2;  编码:UTF-16LE
  • 相关阅读:
    json对象和字符串的相互转换
    使用link rel="shortcut icon"为网页标题加图标
    jQuery——Js与jQuery的相互转换
    用accessKey设置快捷键
    CSS :invalid 选择器
    创建并调用 DLL(1)
    调用外部 DLL 中的函数(2. 晚绑定)
    调用外部 DLL 中的函数(1. 早绑定)
    VCL 中的 Windows API 函数(6): BeginDeferWindowPos
    VCL 中的 Windows API 函数(5): AlphaBlend
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/13741824.html
Copyright © 2011-2022 走看看