Сначала немного фона, я использую JDK 1.6. У меня есть таблица из 2 столбцов в БД Oracle 8i, которая содержит очень простую карту кода в слово. Там нет странных персонажей. Обе колонки varchar.
С моего настольного компьютера, когда я выполняю следующее:
OracleDataSource ods = new OracleDataSource();
ods.setDriverType("thin");
ods.setServerName("DBserver.db");
ods.setDatabaseName("DB");
ods.setPortNumber(1527);
ods.setUser("user");
ods.setPassword("password");
Connection connection = ods.getConnection();
Statement stmt = connection.createStatement();
ResultSet res = stmt.executeQuery(SQL);
CachedRowSet crs = new CachedRowSetImpl();
crs.populate(res);
while (crs.next()) {
System.out.println("ID: " + crs.getString(1) +
", Name: " + crs.getString(2));
}
Все работает нормально, и я получаю ожидаемые результаты (оба возвращаемых значения для getString (1) и getString (2) точно такие же, как они хранятся в таблице)
ОДНАКО:
Когда я выполняю тот же самый точный код в сервлете, сидящем на сервере Tomcat (я использую простую модель сервлета апплета для доступа к таблице и возвращаю ответ апплету), crs.getString (int) возвращает строки, подобные : 0x53, 0x54, 0x4E и т. Д.
Я не уверен, что это значит, и был бы благодарен за любую помощь. Мне интересно, с чего начать устранение проблемы.