У меня есть приложение, в котором я хочу преобразовать строку в кодировке utf-8 в ISO-8859-1, потому что это кодировка моего оракула DB.
В настоящее время это то, что я вставляю в мойdb:
Belgià «
Но я ожидаю этого:
België
Когда я печатаю свойСтрока в Java я получаю следующее: Belgià «
Кто-нибудь может мне помочь?
Это то, что я уже пробовал:
System.out.println(xmlString);
Charset utf8charset = Charset.forName("UTF-8");
Charset iso88591charset = Charset.forName("ISO-8859-1");
ByteBuffer inputBuffer = ByteBuffer.wrap(xmlString.getBytes(utf8charset));
// decode UTF-8
CharBuffer data = utf8charset.decode(inputBuffer);
// encode ISO-8559-1
ByteBuffer outputBuffer = iso88591charset.encode(data);
byte[] outputData = outputBuffer.array();
xmlt = new oracle.xdb.XMLType(con, new String(outputData, iso88591charset));
предложениеиз комментариев тоже не сработало:
byte[] utf8 = xmlString.getBytes("UTF-8");
byte[] latin = new String(utf8, "UTF-8").getBytes("ISO-8859-1");
ByteArrayInputStream bis = new ByteArrayInputStream(latin);
xmlt = new oracle.xdb.XMLType(con, bis);