我有一个 Java 程序需要访问 Firebird 中编码为 DOS437 的数据库。
我需要将查询结果转换为 UTF8,我该怎么做?
我在java中的代码:
public List<Proceso> ObtenerListaProcesos() throws SQLException {
List<Proceso> procesos = new ArrayList<>();
Proceso proceso = null;
Connection conn = null;
ResultSet rs = null;
String query = "select * from procesos where prc_web='V' and prc_valido='V' and prc_valido_fabrica='V' and prc_suplemento_Acabado='F' and prc_codigo!='-' order by prc_descripcion;";
String textoProceso="";
try {
conn = this.abrirConexion();
PreparedStatement p = conn.prepareStatement(query);
rs = p.executeQuery();
while (rs.next()) {
proceso = new Proceso(rs.getString("PRC_CODIGO"),
rs.getString("PRC_DESCRIPCION"));
procesos.add(proceso);
}
} catch (Exception e) {
log.error("Error en ObtenerListaProcesos: " + e.getMessage());
} finally {
this.cerrarConexion(conn);
}
return procesos;
}
我在火鸟连接中有一个编码:
<conexionServidor>jdbc:firebirdsql:servidor/3050:F:/apps/GESTIONGYM2004/BD/BDGYM.FDB</conexionServidor>
<userBD>SYSDBA</userBD>
<passBD>masterkey</passBD>
<encodingBD>DOS437</encodingBD>
我需要将查询结果写入 utf-8 以显示在 html 文件中,但如果使用:new String(rs.getBytes("columnname"), "Cp437"),则结果不在 UTF-8 中。