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

标签 java javascript db2

有一个长度为 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/

相关文章:

javascript - 扩展 bootstrap-typeahead 以获取对象而不是字符串

sql - 在 DB2 的 TIMESTAMP 类型的列 A 中设置日期

java - 如何从以前缀开头的表中选择值

Java : JsonPareser contains no data

javascript - 如何将 javascript 应用于使用 append() 创建的元素?

javascript - 我如何在 AngularJS 中创建响应的自定义提示

sql - Derby和DB2之间的可移植模式

java - 使用 DB2 自动增量获取异常

Java Swing 设计

java - 使用代理时,接口(interface)在 ClassLoader 中不可见?