我有一些问题需要一些法语文本转换为UTF8,以便它可以在控制台,文本文件或GUI元素中正确显示.
原来的字符串是
HANDICAP╔ES
这应该是
HANDICAPÉES
这是一个代码片段,显示了如何使用jackcess数据库驱动程序在Eclipse / Linux环境中读入Acccess MDB文件.
Database database = Database.open(new File(filepath));
Table table = database.getTable(tableName, true);
Iterator rowIter = table.iterator();
while (rowIter.hasNext()) {
Map row = this.rowIter.next();
// convert fields to UTF
Map rowUTF = new HashMap();
try {
for (String key : row.keySet()) {
Object o = row.get(key);
if (o != null) {
String valueCP850 = o.toString();
// String nameUTF8 = new String(valueCP850.getBytes("CP850"), "UTF8"); // does not work!
String valueISO = new String(valueCP850.getBytes("CP850"), "ISO-8859-1");
String valueUTF8 = new String(valueISO.getBytes(), "UTF-8"); // works!
rowUTF.put(key, valueUTF8);
}
}
} catch (UnsupportedEncodingException e) {
System.err.println("Encoding exception: " + e);
}
}
在代码中,您将看到我要直接转换为UTF8的位置,这似乎不起作用,所以我必须进行双重转换.另请注意,使用jackcess驱动程序时,似乎没有办法指定编码类型.
谢谢,
凸轮