关闭

MySQL中汉字占多少字节?varchar(x)中的x如何理解?

260人阅读 评论(0) 收藏 举报

这几天在写接口校验,碰到个有意思的事,前端开发人员问我某个字段的长度控制在多少?

我查了查数据库,发现是varchar(100),于是就说数据库字段限制100,汉字咱们限制50吧。

每个汉字占2个字节,100/2=50,看起来没什么问题。

这时旁边另一个开发说不对,有的偏僻字占3个字节。。。这就很尴尬了,这长度校验咋写?

于是我上网查了查,发现原来我们都理解的不对快哭了

MySQL中varchar(100)中的100指的是字符数,不是字节数。也就是说,varchar(100)能输入100个英文,100个汉字,我实际测试了下,上面的说法是正确的。不管是汉字,英文,字符,数字,都能输入100,超过100会报错。

也就是说,MySQL中varchar(x)中的x指的是字符数,不是字节数。至于每个字符占多少字节要看编码格式。

UTF-8编码中,每个汉字占3个字节,英文字母1个字节。


0
0
查看评论

MySQL 数据库 varchar 到底可以存多少个汉字,多少个英文呢?我们来搞搞清楚

一、关于UTF-8 UTF-8 Unicode Transformation Format-8bit。是用以解决国际上字符的一种多字节编码。 它对英文使用8位(即一个字节) ,中文使用24位(三个字节)来编码。 UTF-8包含全世界所有国家需要用到的字符,是国...
  • ebw123
  • ebw123
  • 2016-05-05 10:09
  • 17467

mysql和oracle的一个汉字占几个字符?

转载地址:http://blog.csdn.net/u011575570/article/details/47414513 以前一直使用oracle11g,一个汉字占3个字节,所以在操作MySQL时也一直这样分配长度。 今天测试了下mysql发现不对了 可以看到第一个的长度...
  • lisheng19870305
  • lisheng19870305
  • 2016-12-16 15:34
  • 4125

ORACLE的VARCHAR2字段类型占字节问题

今天,往ORACLE一个表的VACHAR2(20)字段中插入七个汉字,提示错误:插入的值太大。 改成插入六个汉字,又可以。   一直以来,都以为一个汉字占两个字节。觉得非常奇怪。 用length()、lengthb()函数查看,发现lengthb()是length()的三倍。 &...
  • tanwen1234
  • tanwen1234
  • 2014-01-22 10:59
  • 4930

Mysql各字符集下汉字和字母占字节数

原文地址:http://blog.csdn.net/sidyhe/article/details/6236515 在MySQL 5.1.5-alpha下测试得出如下结论   latin1: 1character=1byte, 1汉字=2character...
  • tanga842428
  • tanga842428
  • 2016-10-11 15:15
  • 416

mysql各字符集下汉字和字母占字节数

<br />在mysql 5.1.5-alpha下测试得出如下结论<br /> <br />latin1:<br />1character=1byte, 1汉字=2character,<br />也就是说一个字段定义成 varch...
  • Sidyhe
  • Sidyhe
  • 2011-03-10 10:33
  • 7620

mysql 中的varchar255 uft-8 的格式到底能放多少汉字

在字符集为UTF-8的情况下:MySQL | ver : VARCHAR以字节为单位存储,所以假设全部为常用汉字(UTF-8 3字节编码长度),则VARCHAR(255)共可存放约85个汉字;MySQL | ver >= 4.1: VARCHAR以字符为单位存储,假设输入仍...
  • forest_fire
  • forest_fire
  • 2016-03-21 11:15
  • 2863

汉字UTF8编码占用几个字节

点击打开链接http://en.wikipedia.org/wiki/UTF-8#Description This table shows UTF-8 as it is since 2003 (the x characters are replaced by the bits of the cod...
  • lein_wang
  • lein_wang
  • 2017-01-10 16:35
  • 532

ORACLE中一个字符占多少字节

在oracle中一个字符特别是中文占几个字节是不同的。  比如我创立一个表create table test_ly(a varchar2(4),b nvarchar2(4))  错!最多能插入一个汉字加一个字母(或数字)。  你说b列最多能插入多少个汉...
  • wojiuguowei
  • wojiuguowei
  • 2014-03-13 17:02
  • 993

MySQL数据类型char与varchar中数字代表的究竟是字节数还是字符数?

实例是最好的说明,所以,废话少说,看表看例子~mysql> show create table test_varchar_utf8\G *************************** 1. row *************************** Table: te...
  • zyz511919766
  • zyz511919766
  • 2016-06-15 15:00
  • 10863

关于java中的中文字符占几个字节

以utf8为例,utf8是一个变长编码标准,可以以1~4个字节表示一个字符,而中文占3个字节,ascII字符占1个字节。 那么为什么我们在java里面可以用一个char来表示一个中文呢? 因为java是以unicode作为编码方式的。unicode是一个定长的编码标准,每个字符都是2个字节,也就是1...
  • WZG_1987
  • WZG_1987
  • 2016-09-24 16:22
  • 3044
    个人资料
    • 访问:28574次
    • 积分:625
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:1篇
    • 译文:0篇
    • 评论:4条
    最新评论