mysql数据库varchar,能存多少个中文字。 您所在的位置:网站首页 数据库字段名可以是中文吗 mysql数据库varchar,能存多少个中文字。

mysql数据库varchar,能存多少个中文字。

2023-07-02 13:39| 来源: 网络整理| 查看: 265

最近, 在存商品名字的长度, 给了varchar(20), 那这个20到底是商品名称汉字长度还是字节长度呢

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

字节(Byte): 是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。 字符(Character): 计算机中使用的字母、数字、字和符号,比如'A'、'B'、'$'、'&'等。 一般在英文状态下一个字母或字符占用一个字节,一个汉字用两个字节表示。

字节与字符 ASCII 码中,一个英文字母(不分大小写)为一个字节,一个中文汉字为两个字节。

Unicode 编码中,一个英文为一个字节,一个中文(含繁体)为两个字节。 UTF-8 编码中,一个英文字为一个字节,一个中文(含繁体)为三个字节。

 1、一般mysql编码都是utf8

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 实验室设备网 版权所有