我使用一个模板将数据从HBase表导出到CSV文件中,但是我遇到了明显的编码问题。这些数据都是用UTF-8存储的,并且使用了多个不同的字符集(俄语、汉语、阿拉伯语等)。
下面是导出数据的主循环。
for(HBaseCol column: columns) {
byte[] val = result.getValue(column.family.getBytes("UTF-8"), column.qualifier.getBytes("UTF-8"));
if (val != null) {
//System.out.println(new String(val,"UTF-8"));
values.add(new String(val,"UTF-8"));
} else {
values.add("");
}
}使用System.out.println()的数据结果是?而CSV文件中的数据是行话,带有随机字符等等。
有洞察力吗?谢谢。
发布于 2013-10-29 13:28:57
答案其实很简单。我使用的CSV出口商没有装备来处理UTF-8。最后,我将数据导出到内存中,然后直接插入到MySQL中。
https://stackoverflow.com/questions/19498032
复制相似问题