dcsimg
Can encoding be specified through any JDBC API ?
0 posts in topic
Flat View  Flat View
TOPIC ACTIONS:
 

Posted By:   zahida_parven
Posted On:   Monday, May 17, 2004 11:44 PM

Hi All, I’ve some query on how JDBC is supposed to convert encoding of characters while updating/selecting multibyte strings to/from a Database supporting Unicode characters. The specific queries are like – 1. Where from the JDBC driver is supposed to get the encoding of the target database instance/database column ? Is there something specifically mandated by JDBC specs or left for particular vendor implementation ? For example - If from a Java client an Oracle DB, having UTF-8 as database character set, is being connected, how does JDBC driver know what is the database character set ? - If from a Java Client a SQL Server 2000 DB instance is queried for a nvarchar field (SQL server 2   More>>

Hi All,


I’ve some query on how JDBC is supposed to convert encoding of characters while updating/selecting multibyte strings to/from a Database supporting Unicode characters. The specific queries are like –




1. Where from the JDBC driver is supposed to get the encoding of the target database instance/database column ? Is there something specifically mandated by JDBC specs or left for particular vendor implementation ? For example


- If from a Java client an Oracle DB, having UTF-8 as database character set, is being connected, how does JDBC driver know what is the database character set ?


- If from a Java Client a SQL Server 2000 DB instance is queried for a nvarchar field (SQL server 2000 always expects nvarchar characters to be in UCS-2), how JDBC driver will know that it has to send UCS-2 characters ,


- If from a Java Client a SQL Server 2000 DB instance is queried for a varchar field having encoding type same as the code page of the locale of the Windows on which the SQL server is running, how JDBC driver will know that it has to send multibyte characters corresponding to that code page ,



2. Can the encoding of the target database instance be specified through the JDBC URL ?


3. Can this encoding be specified through any JDBC API ? (I have not found anything when I checked out) ?


4. How does the encoding of the OS on which the Java Client (which does the JDBC connection, select/update etc.) is running affect the JDBC query ?


5. How much of these issues are covered in JDBC specification and what are the thing left to the vendor’s implementation of JDBC ? Are all different type of JDBC drivers (type 1, type 2 , type 3 and type 4) supposed to work similar way in this context – is any mandate from JDBC specification for this matter ?



At the high level, what I’m looking for are the working principles for converting encoding of characters while updating/selecting multibyte strings to/from a Database based on JDBC specification (or absence of any such thing).




Thanks in advance,

Zahida

   <<Less
About | Sitemap | Contact