我们有一个jdbc程序,它将数据从一个数据库转移到另一个数据库。
据我所知,UTF-8是可变宽度的编码方案,每个字符可以占用1-4字节,考虑到这一点,最坏的解决方案是分配目标数据库中列大小的4倍。
有更好的估计吗?
发布于 2013-12-30 20:57:14
由于无法预先知道文本字符串会增长多少,所以我认为您所能做的就是试运行将文本转换为UTF-8,并生成警告,某些列需要增加大小。任何ASCII (非重音)字符都将保持为单个字节,而大多数拉丁-9重音字符可能各为2个字节,但有些字符可能为3。您必须查看拉丁-9和UTF-8表,看看转换后是否有3或4个字节。尽管如此,你还是要检查你的拉丁文-9文本,看看它会增长多少。
发布于 2014-01-01 21:16:48
拉丁文中的欧元符号在utf-8中用3个字节表示.ascii字符只需1字节。剩下的127个字符将占用2个字节。根据实际的区域设置(以及通常使用的字符),1.5倍到2倍之间的估计应该足够了。
https://stackoverflow.com/questions/20847328
复制相似问题