У нас есть данные, хранящиеся в oracle 10g db, которое содержит французский набор символов. Требуется прочитать данные и сгенерировать выходной файл, используя Java.
Я проверил достоверность данных в Oracle db через SQL * plus, и все выглядит хорошо.
Из окон:
set NLS_LANG=AMERICAN.AL32UTF8
sqlplus scott/tiger
sql> select billing_address from MYTABLE t where ADDRESS_ID=1 ;
billing_address
-----------------------
MONTRÉAL QUÉ
Теперь, когда я читаю таблицу из Java для генерации выходного файла, весь символ искажается, и вместо É я вижу вопросительные знаки.
Есть ли какая-то особая кодировка, которую мне нужно установить, когда я пытаюсь читать / записывать данные в Java.
Я использую ojdbc14.jar
и устанавливаю кодировку как UTF-8.
Обновление : Вот мой фрагмент кода Java.
Charset cs1 = Charset.forName("UTF-8");
PreparedStatement pStmt = conn.prepareStatement("select * from talbe where address_id=1");
ResultSet rs = pStmt.executeQuery();
Writer w = null;
FileOutputStream fos = null;
if(rs.next()) {
String billingaddress = rs.getString("BILLING_ADDRESS");
fos = new FileOutputStream(new File("myout.dat"));
w = new BufferedWriter(new OutputStreamWriter(fos,cs1));
w.write(billingaddress);
}