如何使用JDBC为Oracle 10g设置字符编码

Jac*_*ack 5 java jdbc character-encoding oracle10g

我正在使用Java和Oracle 10g数据库.

如何使用JDBC为Oracle数据库指定UTF-8等字符编码?
我怎样才能找到JDBC使用的当前编码?

Chr*_*ris 6

瘦Oracle JDBC驱动程序传输的数据始终以UTF-16(java的内部表示形式)发送.数据库服务器会将其转换为已配置使用的任何国家字符集(因此,如果数据库设置为UTF-8,则此转换将自动进行).请注意,字符集是在数据库级别设置的,而不是在架构或连接级别.

要找出在DB上配置的字符集,请执行以下查询:

SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET' ;
Run Code Online (Sandbox Code Playgroud)

(您用于连接到数据库的帐户需要具有读取系统表的适当权限才能执行此操作)