I am trying retrieve arabic characters from oracle10g database using java and write it to txt file.
The database characterset is ARABIC_UNITED ARAB EMIRATES.AR8ISO8859P6.
In my registry entry I have NLS_LANG value as ARABIC_UNITED ARAB EMIRATES.AR8ISO8859P6.
The txt file generated by the java code is having ? marks and few arabic characters.
The arabic characters in the database is all correct. I am able to see the proper arabic characters by copy pasting from TOAD screen to text editor with windows 1256 encoding.
I have classes12.jar,ojdbc14.jar,orai18n.jar,nls_charset12.jar in classpath.
I tried oci and thin driver both gives same result.
Can anyone help to figure out if I am doing anything wrong? Is there any special procedure to handle the arabic characters?
Below is the java code?
public class DOC1Test
//private static final Charset ISO_8859_1 = Charset.forName("ISO-8859-6");
public void javajdbc()
OracleConnection con = (OracleConnection)DriverManager.getConnection("jdbcracle:thin:@172.24.72.12:1521:ORCL4","DEV_EAI", "eai");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select subject from event_queue where id='3'");
BufferedWriter out = new BufferedWriter (new OutputStreamWriter(new FileOutputStream("E:\\codepage\\arabic-out.txt"), "Cp1256"));
String finalstr = new String(rs.getString("subject").getBytes(),"Cp1256");
public static void main(String args)
DOC1Test doctest = new DOC1Test();