我使用 teradata,当使用 teradata 客户端运行时,以下查询输出“Altlüd”。
select name as name from MYTABLE where selector=?
然而,当我尝试使用 java 客户端(带有 teradata 驱动程序的 jdbc)执行查询时,我得到“Altl?d”作为输出。我正在使用“UTF-8”字符集,我也尝试过拉丁字符集,但没有运气。
我也试过这个来解决问题。
while (rs.next()) {
System.out.println(rs.getString(1));
Reader rd = rs.getCharacterStream(1);
int charr = rd.read();
while (charr >= 0) {
System.out.println(charr + " = " + ((char) charr));
charr = rd.read();
}
}
输出是
Altl?dersdorf 65 = A 108 = l 116 = t 108 = l 65533 = ? 100 = d
如果您查看生成的输出,spl 字符的 int 值是 65533,这不应该是这种情况。
事实上,它为所有特殊字符返回 65533。
任何线索/指针将不胜感激。谢谢!!!