据MySQL称,一text列有65,535个字节.
因此,如果这是一个合法的边界,那么它实际上只适合大约32k UTF-8字符,对吗?或者这是那些"模糊"边界,其中编写文档的人不能从字节中分辨字符,如果设置为类似的话,它实际上允许〜64k UTF-8字符utf8_general_ci?
Wol*_*lph 74
甲text柱可高达65,535字节.
一个utf-8字符最多可以包含3个字节.
所以...你的实际限制可以是21,844字符.
有关详细信息,请参阅手册:http://dev.mysql.com/doc/refman/5.1/en/string-type-overview.html
可变长度的字符串.M表示字符的最大列长度.M的范围是0到65,535.VARCHAR的有效最大长度取决于最大行大小(65,535字节,在所有列之间共享)和使用的字符集.例如,utf8字符每个字符最多可能需要三个字节,因此使用utf8字符集的VARCHAR列可以声明为最多21,844个字符.
War*_*ung 11
UTF-8字符每个最多可占用4个字节,而不是您想要的2个字节.UTF-8是一种可变宽度编码,具体取决于Unicode代码点中的有效位数:
的原始UTF-8规范允许编码最多31位的Unicode值,以多达6个字节以UTF-8格式来编码.在UTF-8开始流行之后,Unicode联盟声明他们永远不会使用超过2 21 - 1的代码点.现在标准化为RFC 3629.
MySQL 当前(即5.6版)仅支持Unicode 基本多语言平面字符,UTF-8每个字符最多需要3个字节.这意味着您的问题的当前答案是您的TEXT字段可以容纳至少21,844个字符.
根据您的观察方式,实际限制高于或低于:
如果你认为,像我一样,将BMP限制,最终将在MySQL或提升的一个其 叉,你不应该能够超过16,383个字符存储在该领域的计算,如果你的MySQL客户端允许任意的Unicode文本输入.
另一方面,您可以利用UTF-8是可变宽度编码的事实.如果您知道您的文本大多是普通英语,偶尔会出现非ASCII字符,那么您的有效实际限制可能会达到最大64 KB - 1字符限制.
| 归档时间: |
|
| 查看次数: |
48650 次 |
| 最近记录: |