File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes JDBC and Relational Databases and the fly likes JDBC and Arabic character Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » JDBC and Relational Databases
Bookmark "JDBC and Arabic character" Watch "JDBC and Arabic character" New topic

JDBC and Arabic character

Bob Moor

Joined: May 24, 2010
Posts: 7
HI All,

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?

import oracle.jdbc.*;
import oracle.sql.*;
import java.sql.*;

public class DOC1Test
//private static final Charset ISO_8859_1 = Charset.forName("ISO-8859-6");
public DOC1Test()


public void javajdbc()

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
OracleConnection con = (OracleConnection)DriverManager.getConnection("jdbcracle:thin:@","DEV_EAI", "eai");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select subject from event_queue where id='3'");

while (
BufferedWriter out = new BufferedWriter (new OutputStreamWriter(new FileOutputStream("E:\\codepage\\arabic-out.txt"), "Cp1256"));
//out.write(encode(rs.getString("subject"),"ISO-8859-6", "windows-1256"));
String finalstr = new String(rs.getString("subject").getBytes(),"Cp1256");

}catch(Exception e)

public static void main(String[] args)
DOC1Test doctest = new DOC1Test();
I agree. Here's the link:
subject: JDBC and Arabic character
It's not a secret anymore!