File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes JDBC 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
Bookmark "JDBC and Arabic character" Watch "JDBC and Arabic character" New topic
Author

JDBC and Arabic character

Bob Moor
Greenhorn

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.io.*;
import java.sql.*;

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

}

public void javajdbc()
{
try
{

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
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'");

while (rs.next())
{
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");
out.write(finalstr);
out.flush();
}

}catch(Exception e)
{
e.printStackTrace();
}
}

public static void main(String[] args)
{
DOC1Test doctest = new DOC1Test();
doctest.javajdbc();
}
}
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: JDBC and Arabic character