Java 在数据库中存储10个UTF8字符,而不会使文本字符计数器失败

Java 在数据库中存储10个UTF8字符,而不会使文本字符计数器失败,java,javascript,db2,Java,Javascript,Db2,有一个长度为10个字符的文本框,我们正在打印文本字符计数器,该计数器还显示文本框中剩余的字符数 如果我们使用ascii或UTF8字符计数器,那么它也将显示精确的字符计数器。但在后端,它只能保存10个字符的大小。因为UTF8字符是每个字符2字节。所以如果我在文本框中输入10个UTF8字符。它的大小将是20,无法存储在数据库中。根据,MySQL 4统计VARCHAR字段中的字节,而MySQL 5统计字符。因此,这应该适用于MySQL 5。在MySQL 4上,只需将字段变长(将其设为VARCHAR(4

有一个长度为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字节。

我忘了提到我在使用DB2,后来我也编辑并标记了DB2。在DB2LUW(V10.1和更早版本)中,字符列长度以字节表示,因此上面的注释re:MySQL 4也适用。