我们有一个jdbc程序,可以将数据从一个数据库移动到另一个数据库。
据我所知,UTF-8是可变宽度编码方案,每个字符可以占用1-4个字节,因为最坏的情况解决方案是分配目标数据库中列大小的4倍。
有更好的估计吗?
答案 0 :(得分:1)
由于事先没有确切地说明文本字符串会增长多少,我认为您所能做的只是试运行将文本转换为UTF-8,并生成一个警告,指出某些列需要增加尺寸。任何ASCII(非重音)字符都将保持单个字节,大多数Latin-9重音字符可能每个都是2个字节,但也有一些可能是3.您必须查看Latin-9和UTF-8表转换后查看是否有3或4个字节。不过,你必须检查你的Latin-9文本,看它会增长多少。
答案 1 :(得分:1)
Latin-9中的欧元符号将在utf-8中表示3个字节。 ascii字符只占用1个字节。剩余的127个字符将占用2个字节。根据实际的语言环境(以及常用的字符),1.5x和2x之间的估计值就足够了。