精华内容
下载资源
问答
  • [Mysql]varchar存中文的长度问题

    千次阅读 2020-12-16 11:45:53
    varchar(50)能50个中文汉字,其实就是不管是什么字符,中文也好英文也好,只能50个。 其实varchar类型可以存储多少个汉字,多少个数字,是要具体看我们的mysql版本,目前2020年使用的版本应该都是按照字符数来...

    在主流的MYSQL 5.7

    varchar(50)能存50个中文汉字,其实就是不管是什么字符,中文也好英文也好,只能存50个。

    其实varchar类型可以存储多少个汉字,多少个数字,是要具体看我们的mysql版本,目前2020年使用的版本应该都是按照字符数来算了,而不是字节数。

    如下:
    5.0.3版本以下,比如 varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节)

    5.0.3版本及以上,比如varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个

    mysql历史版本:基本只能查到5.0以上版本了,并不是说没有4.x, https://downloads.mysql.com/archives/community/

     

    汉字在不同字符集占用字节不同:

    GBK编码下,一个汉字占2个字节bai;
    UTF-8编码下,一个汉字占3个字节

    展开全文
  • mysql 数据库varchar存储汉字

    千次阅读 2018-09-27 18:19:52
    4.0版本以下,varchar(100),指的是100字节,如果存放UTF8汉字时,只能33个(每个汉字3字节)  5.0版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放...

    具体还是要看版本的

    4.0版本以下,varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节) 

    5.0版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。

    自己在数据库中建个表测试下可以放多少个汉字。

    示例:以5.0以上版本为例。

    新建表:

    CREATE TABLE varchar_test (

    `id` int(11) NOT NULL ,

    `string` varchar(20)

    ) ENGINE=InnoDB

    DEFAULT CHARACTER SET=utf8COLLATE=utf8_general_ci

    插入表

    INSERT INTO varchar_test (id, string)

    VALUES (1, '一二三四五六七八九十');

     

    INSERT INTO varchar_test (id, string)

    VALUES (2, '一二三四五六七八九十一二三四五六七八九十');

     

    INSERT INTO varchar_test (id, string)

    VALUES (3, '12345678901234567890');

     

    测试结果:

    1:一二三四五六七八九十

    2:一二三四五六七八九十一二三四五六七八九十

    3:12345678901234567890

     

    如果插入字符超过21个,则报错

    INSERT INTO varchar_test (id, string)

    VALUES (3, '123456789012345678901');

    [Err] 1406 - Data too long for column'string' at row 1

    可见MySQL的varchar(n)可以存储的中文字符数和英文字符数是一致的,都是n个字符

    展开全文
  • varchar(100)的字段,了不到四五十个字,就报错了,我晕了,这不...我们常用的utf-8存中文是变长的,大多是4个字节,有的是3个字节。 所以要100个汉子,varchar至少应该是400靠谱一些。 想了解更多,请参考下

    varchar(100)的字段,存了不到四五十个字,就报错了,我晕了,这不明明是100长度么 !?

    脑残到如此程度的我,稍稍百度了一下,故作词笔记。

    varchar(100)里面的100指的是100个字节

    数字和英文都是站一个字节。

    我们常用的utf-8存中文是变长的,大多是4个字节,有的是3个字节。

    所以要存100个汉子,varchar至少应该是400靠谱一些。

    想了解更多,请参考下面链接

    http://blog.csdn.net/steveguoshao/article/details/39052437

    展开全文
  • varchar2存储汉字

    2021-05-01 03:41:00
    NVARCHAR2和VARCHAR2的区别,从使用角度来看区别在于: NVARCHAR2在计算长度时和字符集相关, 例如数据库是中文字符集时,以长度10为例,则 NVARCHAR2(10)可以进去10个汉字,如果用来英文也只能10个字符。...

    NVARCHAR2和VARCHAR2的区别,从使用角度来看区别在于: NVARCHAR2在计算长度时和字符集相关, 例如数据库是中文字符集时,以长度10为例,则 NVARCHAR2(10)可以存进去10个汉字,如果用来存英文也只能存10个字符。 VARCHAR2(10)只能存进5个汉字,英文则可以存10个 。 *********************************************************************** CHAR固定长度字符域,最大长度可达2000个字节 NCHAR多字节字符集的固定长度字符域,长度随字符集而定,最多为2000个字符或2000个字节 VARCHAR2可变长度字符域,最大长度可达4000个字符 NVARCHAR2多字节字符集的可变长度字符域,长度随字符集而定,最多为4000个字符或4000个字节 *********************************************************************** varchar,nvarchar, varchar2,nvarchar2的区别 四个类型都属于变长字符类型: varchar和varchar2的区别在与后者把所有字符都占两字节,前者只对汉字和全角等字符占两字节。 nvarchar和nvarchar2的区别和上面一样, 与上面区别在于是根据Unicode 标准所进行的定义的类型,通常用于支持多国语言类似系统的定义。 ***************************************************************************************************************** char char的长度是固定的,比如说,你定义了char(20),即使你你插入abc,不足二十个字节,数据库也会在abc后面自动加上17个空格,以补足二十个字节; char是区分中英文的,中文在char中占两个字节,而英文占一个,所以char(20)你只能存20个字母或10个汉字。 char适用于长度比较固定的,一般不含中文的情况 ***************************************************************************************************************** varchar/varchar2 varchar是长度不固定的,比如说,你定义了varchar(20),当你插入abc,则在数据库中只占3个字节。 varchar同样区分中英文,这点同char。 varchar2基本上等同于varchar,它是oracle自己定义的一个非工业标准varchar,不同在于,varchar2用null代替varchar的空字符串 varchar/varchar2适用于长度不固定的,一般不含中文的情况 1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节; 2.VARCHAR2把空串等同于null处理,而varchar仍按照空串处理; 3.VARCHAR2字符要用几个字节存储,要看数据库使用的字符集, 大部分情况下建议使用varchar2类型,可以保证更好的兼容性。 ***************************************************************************************************************** nvarchar/nvarchar2 nvarchar和nvarchar2是长度不固定的 nvarchar不区分中英文,比如说:你定义了nvarchar(20),你可以存入20个英文字母/汉字或中英文组合,这个20定义的是字符数而不是字节数 nvarchar2基本上等同于nvarchar,不同在于nvarchar2中存的英文字母也占两个字节 nvarchar/nvarchar2适用于存放中文

    答案来源网络,供参考,希望对您有帮助

    展开全文
  • MySQL 中的 VARCHAR(255) 可以存放 1 - 255 个 UTF-8 格式的汉字 ... latin1 字符集最多可以存放 85 个 UTF-8 格式的汉字 ... utf-8 字符集最多可以存放 255 个 UTF-8 格式的汉字 ... 如果谁可以找到一个占用两字节...
  • varchar(100)可以多少中文字符

    万次阅读 2019-03-06 16:12:19
    4.0版本以下,varchar(100),指的是100字节,如果存放UTF8汉字时,只能33个(每个汉字3字节) 5.0版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个...
  • 标题:MYSQL字段的长度varchar类型能多少个中文字符 MySQL | ver < 4.1: VARCHAR以字节为单位存储,所以假设全部为常用汉字(UTF-8 3字节编码长度),则VARCHAR(255)共可存放约85个汉字; MySQL | ver >= ...
  • 场景:表结构中字段类型为varchar,用N’的形式插入或者修改都是? 解决办法:varchar改为nvarchar 区别 varchar(n)长度为 n 个字节的可变长度且非 Unicode 的字符数据。 nvarchar(n)包含 n 个字符的可变长度 Unicode ...
  • 1.存储单位MySQL在5版本以后,varchar(45),指的是45个字符,可以存放45个汉字,或者45个英文字母(一个UTF8汉字和一个英文字母一样,都占用1个字符)。MySQL在4版本以前,varchar(45),指的是45个字节,可以存放15个...
  • 查询比较时 比如 ‘字段名称’ =‘中文’ 会报和以下类似的错误 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' “(latin1_swedish_ci,IMPLICIT) ...
  • 参考:https://www.cnblogs.com/zhuyeshen/p/11642211.html
  • 4.0 版本以下,varchar(100),指的是100字节,如果存放UTF8汉字时,只能33个(每个汉字3字节) 5.0 版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100...
  • 输出为 250 255 307 如果某个字段属性为varchar(249)那么第一个字符串入库就会报错,如果varchar(254)的话第一个字符串存入就会报错。可以看出不管是数字还是字符串是按照单个字符来做基本单位的,只要一个字符就...
  • 2、varchar多少汉字、数字?3、varchar的最大长度是多少呢?4、字符、字节、位,之间的关系?5、mysql字段类型存储需要多少字节?接下来请仔细看,整理不易啊。1、varchar(100)和varchar(10)的区别在哪里?一般...
  • mysql varchar(50)到底能多少个汉字

    万次阅读 多人点赞 2017-10-25 11:25:11
    mysql 4.0版本以下,varchar(50), ...mysql 5.0版本以上,varchar(50), 指的是50字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放50个。 可以自己建个表试试varchar(50)可以放多少汉字
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行...
  • 1、varchar(100)和varchar(10)的区别在哪里? 一般初学会认为,二者占用的空间是一样的。比如说我存储5个char,二者都是实际占用了5个char了【不准确的想法:varchar在实际存储的时候会多一个byte用来存放长度】。 ...
  • 4.0版本以下bai,varchar(100),指的是100字节,如果存放UTF8汉字du时,只zhi能33个(每个汉字3字节) 5.0版本以上,varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以...
  • 1、不同编码中汉字占用的字节 字节,计量存储容量的计量单位之一,通常情况下:1字节bytes = 8位bits。 字符,计算机中使用的字母、数字、字和符号等。...2、mysql varchar(100)能汉字数 这和mysql的版本有关系
  • 错误提示: 一个汉字占了三个字节,而不是两个,这跟字符集有关。...UTF-8的每个字符占3个字节(bytes),可以通过修改默认字符集来实现varchar2(2)存储一个汉字。若此时数据库服务器已启动,则先执行SHUTDOWN IMME...
  • 2、varchar多少汉字、数字? 3、varchar的最大长度是多少呢? 4、字符、字节、位,之间的关系? 5、mysql字段类型存储需要多少字节? 接下来请仔细看,整理不易啊。 1、varchar(100)和varchar(10)的区别在...
  • 它对英文使用 8 位(即一个字节) ,中文使用 24 位(三个字节)来编码。 UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。 UTF-8编码的文字可以在各国支持 UTF8 字符集额的浏览器上显示。 如果是...
  • mysql varchar到底能多少汉字

    千次阅读 2016-09-22 01:35:28
    在utf-8状态下,汉字最多可以 21844个字符串, 英文也为 21844个字符串。 在gbk状态下,汉字最多可以 32766个字符串,英文也为 32766个字符串。
  • 首先要确定mysql版本 4.0版本以下,varchar(50),指的是50字节,如果存放UTF8汉字时,只能...其实最好的办法是在自己数据库中建个表试试可以放多少汉字,现在mysql都5.0已上了,varchar(50)是可以50个汉字的 ...
  • varchar2 汉字长度问题

    2020-04-03 16:16:57
    转载于:... Oracle定义varchar2()类型存储汉字的长度问题 varchar2最大是4000字节,那么就看你的oracle字符集:(select userenv('language') from dual;) 如果字符集是16位编码的,ZHS16GBK,...
  • mysql中varchar(20)最多能多少个汉字

    千次阅读 2019-05-14 10:15:00
    4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个 ...
  • Oracle 中 varchar2 到底能多少个 汉字: 原文链接:https://www.cnblogs.com/firstgreen/p/3586301.html 1. varchar2最大长度为4000字节。 2. varchar2的参数有两个:byte(默认), char 其中varchar2(10 ...
  • oracle varchar2存汉字出现问题

    千次阅读 2016-11-10 17:12:30
    页面的remark备注字段在数据库中的长度为varchar2(4000),jsp页面校验长度的方式为: var valFlag = editForm.validate({ strucName:{name:'措施名称',notEmpty:true,trim:true,maxLength:256}, strategyName:{...
  • MySQL 数据库 varchar 到底可以多少个汉字,多少个英文呢?我们来搞搞清楚 一、关于UTF-8 UTF-8Unicode Transformation Format-8bit。是用以解决国际上字符的一种多字节编码。 它对英文使用8位(即一个字节) ,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,150
精华内容 6,460
关键字:

varchar存汉字