我们的产品有两个相同的设置.一个设置正常工作,但其他设置遇到了以下问题.
我们在数据库上触发查询,查询如下:
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();
Run Code Online (Sandbox Code Playgroud)
现在col1("column1")数据类型是"SYS.XMLTYPE",获取列数据的代码是:
Object obj = null;
obj = l_rs.getObject(1);
String xmlStr = null;
if(obj instanceof XMLTYPE){
...
} lse if (obj instanceof XMLTYPE){
...
} else if (obj instanceof java.sql.SQLXML){
xmlStr = ((SQLXML)obj).getString ();
}
Run Code Online (Sandbox Code Playgroud)
程序的控制在最后的其他地方,即
xmlStr = ((SQLXML)obj).getString ();
Run Code Online (Sandbox Code Playgroud)
现在,当我们检查xmlStr的值时,它包含垃圾字符:
Ÿcž(too many junk characters.)
Run Code Online (Sandbox Code Playgroud)
在一个设置上,这段代码正常工作,另一方面,xml String给出了垃圾字符,原因可能是什么?
您可能必须指定您期望的字符串编码。默认情况下,Windows 和 Linux 具有不同的默认编码,因此当您在一个平台上编组并在另一平台上解组时,它们可能不兼容。理想情况下,应该确定编码,以便两个平台之间使用的编码保持一致。
归档时间: |
|
查看次数: |
1057 次 |
最近记录: |