私は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を返します。
手がかり/ポインタがあれば幸いです。ありがとう!!!