有一个长度为 10 个字符的文本框,我们正在打印文本字符计数器,它还显示文本框中剩余的字符数。
如果我们使用 ascii 或 UTF8 字符,那么它也会显示精确的字符计数器。但在后端它只能保存 10 个字符大小。因为 UTF8 字符是每个字符 2 个字节。所以如果我在文本框中输入 10 个 UTF8 字符。它的大小将为 20,并且无法存储在数据库中。
有一个长度为 10 个字符的文本框,我们正在打印文本字符计数器,它还显示文本框中剩余的字符数。
如果我们使用 ascii 或 UTF8 字符,那么它也会显示精确的字符计数器。但在后端它只能保存 10 个字符大小。因为 UTF8 字符是每个字符 2 个字节。所以如果我在文本框中输入 10 个 UTF8 字符。它的大小将为 20,并且无法存储在数据库中。
据此, MySQL 4 计算 VARCHAR 字段中的字节数,而 MySQL 5 计算字符数。所以这应该适用于 MySQL 5。在 MySQL 4 上,只需使您的字段更长(使其成为 VARCHAR(40) 并保证它足以容纳 10 个 UTF-8 字符)。
顺便说一句,UTF-8 字符不一定是 2 个字节长。有些是 1 个字节长,有些可能超过 2 个字节。以 UTF-8 编码时,所有 ASCII 字符都是 1 个字节长。