Java+;ResultSet.getObject()

Java+;ResultSet.getObject(),java,xml,jdbc,Java,Xml,Jdbc,我们有两个相同的设置,我们的产品在我们的结束。一个设置工作正常,但另一个设置遇到以下问题 我们正在对数据库启动一个查询,查询如下: String query = select col1_name, col2_name, col3_name from table_1; PreparedStatement l_statement = null; Connection con = "<connection-string>"; l_statement = con.prepareStateme

我们有两个相同的设置,我们的产品在我们的结束。一个设置工作正常,但另一个设置遇到以下问题

我们正在对数据库启动一个查询,查询如下:

String query = select col1_name, col2_name, col3_name from table_1;
PreparedStatement l_statement = null;
Connection con = "<connection-string>";
l_statement = con.prepareStatement(query);
Resultset l_rs = l_statement.executeQuery();
程序的控制进入最后一个else if,即

xmlStr = ((SQLXML)obj).getString ();
现在,当我们检查xmlStr的值时,它包含如下垃圾字符:

Ÿcž(too many junk characters.)

在一种设置中,这段代码工作正常,而在另一种设置中,xml字符串会给出垃圾字符,原因可能是什么?

您可能需要指定所需的字符串编码。默认情况下,Windows和Linux具有不同的默认编码,因此在一个平台上进行marshall,在另一个平台上进行unmarshall时,它们可能不兼容。理想情况下,应确定编码,以便两个平台之间使用的编码一致。

显然有些不同:-)您是否验证了DB编码、服务器编码等?您能告诉我们您的设置有什么不同吗?如果两个相同的设置,请尝试交换机器(工作机器上安装有错误,反之亦然)。提出此建议的原因:检查数据库是否损坏。两个设置都指向同一个数据库。服务器编码在其中的作用是什么?两个服务器上都没有。两个设置之间的唯一区别是,一个安装在linux上,另一个安装在windows上。不同服务器上的默认编码是什么?是否明确尝试过将服务器上的编码设置为DB的编码?
Ÿcž(too many junk characters.)