通过JDBC在Oracle 11g中保存字符

通过JDBC在Oracle 11g中保存字符,jdbc,oracle11g,character-encoding,utf,utf8-decode,Jdbc,Oracle11g,Character Encoding,Utf,Utf8 Decode,首先,我做了一些研究,这个问题被问了很多次。问题是,当带有ñ的字符串保存在数据库中时,它将成为无法读取的特殊字符。当您通过JavaJDBC读取数据时,它会变成另一个字符“Ô。e、 g.字符Señorita读作SeÃ'orita。根据管理员的说法,我们的数据库中没有设置UTF。奇怪的是,这就是为什么我发布了这个问题,当我使用OracleToad用带有ñ的字符串更新表数据时,它会在表中保存为ñ。与通过JDBC保存或更新它不同,它不会更改为不可读的特殊字符。e、 g.Señorita读作Señori

首先,我做了一些研究,这个问题被问了很多次。问题是,当带有ñ的字符串保存在数据库中时,它将成为无法读取的特殊字符。当您通过JavaJDBC读取数据时,它会变成另一个字符“Ô。e、 g.字符Señorita读作SeÃ'orita。根据管理员的说法,我们的数据库中没有设置UTF。奇怪的是,这就是为什么我发布了这个问题,当我使用OracleToad用带有ñ的字符串更新表数据时,它会在表中保存为ñ。与通过JDBC保存或更新它不同,它不会更改为不可读的特殊字符。e、 g.Señorita读作Señorita


我的老板说,如果这可以通过Toad实现,你当然可以用Java实现,但我还没有找到一种方法。有人能帮忙吗?

您能分享一下用于更新数据库的Java代码吗?此外,请检查数据库的字符集编码,或让DBA使用sys.props$中的select值$进行检查,其中name='NLS\U CHARACTERSET'您可以共享用于更新数据库的Java代码吗?另外,请检查数据库的字符集编码,或者让DBA使用sys.props$中的select值$where name='NLS\U CHARACTERSET'检查它