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