返回信息流数据库里面字段类型设置的是varchar(200)。数据库是mysql 5.x版本。结果发现该字段能够存储200个汉字,但是通过otl读取的时候只能读出来一百个汉字,何解?
据说,varchar(200)在4.x版本和5.x版本表示的意思不同。
这是一条镜像帖。来源:北邮人论坛 / database / #6937同步于 2012/6/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
【请教】mysql varchar类型遇到的问题
laser
2012/6/26镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)
5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节
我用的是mysql 5.1 varchar(200),数据库中能够写进去200个汉字,但是用程序读出来的时候,缓冲区分配多大空间,只能读出100个汉字。
【 在 toxie641517 的大作中提到: 】
: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)
: 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节
: