Oracle 通过BPEL流程将UTF-8字符插入数据库

Oracle 通过BPEL流程将UTF-8字符插入数据库,oracle,unicode,encoding,adapter,bpel,Oracle,Unicode,Encoding,Adapter,Bpel,我们有一个BPEL流程,它接受字符(例如中文)并尝试将它们插入NVARCHAR列。XML负载在各个阶段看起来都是正确的(我们看到的编码是UTF-8),但在实际插入时,我们看到的是错误的字符。我们的理论是DB适配器可能是问题所在,但我们不能确定 有没有办法检查DB适配器的版本和配置,看看它是否可以处理UTF-8和Unicode?我们已使用TOAD、Java servlet等成功地将中文和HEWDREW字符插入数据库,因此数据库本身已配置。它是Oracle 9.2.0.8.0版 可能是DB适配器之外

我们有一个BPEL流程,它接受字符(例如中文)并尝试将它们插入NVARCHAR列。XML负载在各个阶段看起来都是正确的(我们看到的编码是UTF-8),但在实际插入时,我们看到的是错误的字符。我们的理论是DB适配器可能是问题所在,但我们不能确定

有没有办法检查DB适配器的版本和配置,看看它是否可以处理UTF-8和Unicode?我们已使用TOAD、Java servlet等成功地将中文和HEWDREW字符插入数据库,因此数据库本身已配置。它是Oracle 9.2.0.8.0版

可能是DB适配器之外的其他地方出了故障,所以我们正在努力排除故障。是否值得尝试查看HTTP头来检查这里的编码


谢谢

我们终于弄清了真相。在WSDL文件中(作为数据库连接详细信息的一部分),我们指定defaultNChar=true属性作为属性,并将其传递给数据库驱动程序。

数据库的字符集和国家字符集是什么?我认为在9.2天的时间里,国家角色集可能是UTF-8,尽管这是不被鼓励的。通常,数据库的国家字符集是UTF-16。你能解释一下“看到不正确的字符”是什么意思吗?你觉得这些角色怎么样?你是在发直选票吗?您是否正在检查转储函数的输出?还有什么?我们尝试插入的字符串是:''英语,但撇号符号没有正确显示(在TOAD中),因此无论是使用SELECT还是仅在datagrid中查看数据,它都显示为?英语。NLS_字符集为WE8ISO8859P1,NLS_NCHAR_字符集为AL16UTF16。谢谢,恭喜你。当你有能力时,一定要将你的答案标记为“已接受”,以便其他人可以从你的解决方案中学习。干杯~