我有以下问题:
我必须将插入到表单输入字段中的数据存储在数据库中。我验证该输入中的数据不超过 40 个字符。
问题是,如果我插入一个有 40 个字符的文本,但其中一个是重音符号,那么显然验证不会显示任何错误,但是当它要存储在数据库中时,会抛出以下异常:
ORA-12899: 列“DBUSER”、“TABLE”、“COLUMN”的值太大(实际:41,最大值:40)
看来重音字符在数据库中占用了多个字符。
我想这与编码有关,但我不知道从哪里开始寻找。有什么想法吗?
谢谢!!
最佳答案
Use NVARCHAR2
as type对于列或使列至少是最长输入的六倍宽(一个 Unicode 字符使用 UTF-8 编码最多可以变成 6 个字节)。
关于java - 重音字符需要多一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9632206/