问mysql数据库varchar(50),能存多少个中文字。 您所在的位置:网站首页 英文500字符是多少字 问mysql数据库varchar(50),能存多少个中文字。

问mysql数据库varchar(50),能存多少个中文字。

2024-07-04 09:59| 来源: 网络整理| 查看: 265

最近,领导出差在外,突然一条信息将我惊醒,

问mysql数据库varchar(50),能存多少个中文字。

我内心想,幸亏有储备,说一个utf8中文3个字符,那么这里应该差不多16个字吧。领导问字符还是字节,我太慌了,手已经抖了,回复字节,字节。领导继续:不同的编码格式下,一个字符占用的字节不同,字符的定义,一个汉字就是一个字符吧。 太难了,懂技术的领导面前无处遁形啊。做事要认真,技术要精进

不管是做为一个开发,还是一个测试,在实际工作中都会遇到这样一个问题,比如:

这个input框的限制输入长度是10,是如何判断输入字符的长度的?

这里会涉及到两个概念,那就是字符和字节。

字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。 字符(Character)计算机中使用的字母、数字、字和符号,比如'A'、'B'、'$'、'&'等。 一般在英文状态下一个字母或字符占用一个字节,一个汉字用两个字节表示。 字节与字符: ASCII 码中,一个英文字母(不分大小写)为一个字节,一个中文汉字为两个字节。 UTF-8 编码中,一个英文字为一个字节,一个中文(含繁体)为三个字节。 针对UTF-8,中国的汉字多达10多万,常用的汉字3500左右[08年统计],如果用3个字节来表示,一共只有2^24(16777216)种可能,不足以表示10多万的汉字。所以中日韩的超大字符集是采用的4个字节来表示的,多达6万多个。但是平时使用超大字符集的概率0.01%都不到。所以我们一般认为日常的中文在UTF-8中占三个字节,但实际上也有4个字节的. Unicode 编码中,一个英文为一个字节,一个中文(含繁体)为两个字节。 符号:英文标点为一个字节,中文标点为两个字节。例如:英文句号 . 占1个字节的大小,中文句号 。占2个字节的大小。 UTF-16 编码中,一个英文字母字符或一个汉字字符存储都需要 2 个字节(Unicode 扩展区的一些汉字存储需要 4 个字节)。 UTF-32 编码中,世界上任何字符的存储都需要 4 个字节。

1、一般mysql编码都是utf8 版本5.+,如果是varchar 50,那么这里50是什么单位尼, mysql 4.0版本以下,varchar(50), 指的是50字节,如果存放utf8汉字时,只能存放16个(每个汉字3字节)。 mysql 5.0版本以上,varchar(50), 指的是50字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放50个。 2、Input框长度限制是10的话,我们能输入几个汉字尼? 这个就涉及对于这个长度的校验是谁做,一般都是前端js校验(Value.length)。而如果是这种,一般单位都是10个字符,可以输入10个汉字, 但是如果有人设计说在java层做校验怎么办(非常少),如果java直接获取字符长度字符:如int length = str.length,那么还是一样10个汉字,如果有人比较“狠”,获取字节长度: 如int length = str.getBytes(“GBK”).length;那么就又要进行字节转换了,有点难了,大家自己掐指算一算



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有