MSQL数据库的编码格式

       一个UTF8占三个字节(也与操作系统版本有关,有的版本为3有的为2)(三个字节占一个字符),如果只存英文或数字,则一个英文或数字占1个字节

 

      select length(“开心工作”);      查看开心工作占几个字节,需要先看他是什么编码格式,length为看字节数。

      select char_length("开心工作“);   查看有几个字符,为四个(不管汉字还是数字或者是字母都算是一个字符)。

 

       当客户端发送“开心工作”时候,会告诉数据库它的编码格式是什么(character_set_client = utf-8)。如果为utf-8,三个字节占一个字符,所以此为12个字节;如果是latin

       总结一下就是说,无论是LENGTH()还是CHAR_LENGTH()都是为了统计字符串的长度。只不过,LENGTH()是按照字节来统计的,CHAR_LENGTH()是按照字符来统计的。例如:一个包含5个字符且每个字符占两个字节的字符串而言,LENGTH()返回长度10,CHAR_LENGTH()返回长度是5;如果对于单字节的字符,则两者返回结果相同。

       ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值-128,最大值127。如一个ASCII码就是一个字节。

      UTF-8编码:一个英文字母等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节。

      Unicode编码:一个英文字母等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节。

      一个英文字母,无论大写和小写都是一个字符、一个字节。一个汉字是一个字符、两个字节。

 

那么,如何判断多字节字符是占两个字节,还是三个字节呢?继续查了点资料:

       原来这里的字节数和编码有关。所以回过头来看文章开头所描述的问题:因为编码是UTF-8,所以一个中文占3个字节,所以LENGTH(“轻松工作”)值为12。

      另外补充下,一个单词有几个字母就计几个字符.比如:maybe 这个单词由五个字母组成一个词,它的字符数为5 .

 

个性签名:一个人在年轻的时候浪费自己的才华与天赋是一件非常可惜的事情

        如果觉得这篇文章对你有小小的帮助的话,记得在左下角点个“👍”哦,博主在此感谢!

 

万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾! 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值