Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL UTF文本容量_Mysql_Unicode_Tinytext - Fatal编程技术网

MySQL UTF文本容量

MySQL UTF文本容量,mysql,unicode,tinytext,Mysql,Unicode,Tinytext,我有一个名为“summary”的专栏(tinytext,utf8_turkish_ci)。我知道它可以存储255字节,也可以存储255个字符。但是如果我使用unicode字符,比如Ö,Ü存储容量自然会减少。如果我的访问者输入250个字符长的unicode文本,那么最后一个字符将被擦除。我的摘要列的长度将始终为250个字符。我能做什么?谢谢。您可以将其改为varchar。varchar的长度限制为指定的字符数。tinytext字段的长度限制为255字节。您可以将其改为varchar。varchar

我有一个名为“summary”的专栏(tinytext,utf8_turkish_ci)。我知道它可以存储255字节,也可以存储255个字符。但是如果我使用unicode字符,比如Ö,Ü存储容量自然会减少。如果我的访问者输入250个字符长的unicode文本,那么最后一个字符将被擦除。我的摘要列的长度将始终为250个字符。我能做什么?谢谢。

您可以将其改为
varchar
varchar
的长度限制为指定的字符数。
tinytext
字段的长度限制为255字节。

您可以将其改为
varchar
varchar
的长度限制为指定的字符数。
tinytext
字段的长度限制为255字节。

UTF-8是可变长度编码。一个字符可以被编码成1到4个字节(理论上限制为6,但我还没有遇到)。如果您只处理土耳其语,那么每个字符只需要2个字节。因此,您需要500字节的列大小来支持250个字符,因此您应该使用类似于
varchar(500)
text

的内容,UTF-8是可变长度编码。一个字符可以被编码成1到4个字节(理论上限制为6,但我还没有遇到)。如果您只处理土耳其语,那么每个字符只需要2个字节。因此,您需要500字节的列大小来支持250个字符,因此您应该使用类似
varchar(500)
text

的内容。另外注意:在MySQL 5中,Innodb只允许767字节的键,尽管不属于键的字段可能更长。由于OP使用utf8字符集,MySQL每个字符使用3个字节,因此键中的
varchar
字段将限制为255.67个字符,这实际上意味着最多255个字符。由于OP只需要250个字符,这就足够了。另外一点需要注意的是:在MySQL 5中,Innodb只允许767字节的密钥,尽管不属于密钥的字段可能更长。由于OP使用utf8字符集,MySQL每个字符使用3个字节,因此键中的
varchar
字段将限制为255.67个字符,这实际上意味着最多255个字符。由于OP只需要250个字符,这就足够了。