java - 重音字符需要多一个字符

标签 java database oracle character-encoding

我有以下问题:

我必须将插入到表单输入字段中的数据存储在数据库中。我验证该输入中的数据不超过 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/

相关文章:

java - Thymeleaf:如何打印从数据库中获取的值到html文本中?

sql - 存储二维稀疏数组(二维稀疏矩阵)的最佳方式是什么?它在 VoltDB 中的大小是多少?

php - 为什么我在使用 w3school 教程时遇到错误?

php - 我想将表单信息添加到数据库表中现有的用户(使用 PHP)

oracle - 什么可能导致间歇性 ORA-12519 (TNS : no appropriate handler found) errors

oracle - 如何批量更新oracle pl/sql中的大表以避免用完undospace?

Java - 执行时间

java - 有没有任何预定义的方法可以通过在 Android 中提供整数来获取字母表?

c# - 在 C# 中将字符串列表添加到 OracleCommand.Parameters

Java Socket Chat,某些消息未发送