有一个长度为 10 个字符的文本框,我们正在打印文本字符计数器,它显示文本框中剩余的字符数。
如果我们使用 ascii 或 UTF8 字符,那么它也会显示精确的字符计数器。但在后端只能保存10个字符的大小。因为 UTF8 字符每个字符 2 个字节。所以如果我在文本框中放入 10 个 UTF8 字符。它的大小将为 20,并且无法存储在数据库中。
最佳答案
根据this ,MySQL 4 对 VARCHAR 字段中的字节进行计数,而 MySQL 5 对字符进行计数。所以这应该适用于 MySQL 5。在 MySQL 4 上,只需让您的字段更长(将其设为 VARCHAR(40),并且保证足以容纳 10 个 UTF-8 字符)。
顺便说一下,UTF-8 字符不一定是 2 个字节长。有些长度为 1 个字节,有些可能长于 2 个字节。当以 UTF-8 编码时,所有 ASCII 字符都是 1 字节长。
关于java - 在数据库中存储 10 个 UTF8 字符,文本字符计数器不会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17101599/