Caracteres especiales en Oracle NCLOB

Estoy tratando con una base de datos Oracle 10g y se proporciona el siguiente procedimiento almacenado:

 procedure get_synopsis (
   p_id in  my_schema.products.p_id%type,
   p_synopses out sys_refcursor);  -- cursor of - synopsis_type, synopsis_text

En mi código Java preparo la declaración de esta manera:

String idForDb = fromIdUrlToIdDb(prodIdUrl); 
statement.registerOutParameter(1, OracleTypes.VARCHAR);
statement.setString(1, idForDb );
statement.registerOutParameter(2, OracleTypes.CURSOR);

Y obtengo los datos que necesito de esta manera:

String defaultSyn, nonDefSyn;

String returnedId = ((OracleCallableStatement)stm).getString(1);
try ( ResultSet synopses = ((OracleCallableStatement)stm).getCursor(2) ){ // p_synopses - cursor of: synopsis_type, synopsis_text

    while( synopses!=null && synopses.next() ){

        String type = synopses.getString(1) != null ? synopses.getString(1).toUpperCase() : null;

        if( type != null ){

            StringBuilder sb = new StringBuilder();
            BufferedReader br = new BufferedReader( synopses.getClob(2).getCharacterStream() );
            String line;

            while ((line = br.readLine()) != null) {
               sb.append(line).append("\n");
            }

            if("DEFAULT".equals(type)){
                defaultSyn = sb.toString();
            }else if("NONDEFAULT".equals(type)){
                nonDefSyn = sb.toString();
            }

            // ...
        }
    }
}

El campo SYNOPSIS_TEXT es unNCLOB pero uso una cadena para su contenido, ya que estoy seguro de que no será más larga que MAX_INTEGER. Los "Nel conjunto de caracteres nacional "utilizado esUnicode.

En el JSON generado a partir de esa cadena puedo ver caracteres manejados correctamente comocoma, guión, guión, comilla simple, punto, paréntesis, colon, etc. pero tengo problemas con caracteres especiales comocomilla simple izquierda / U + 2018 (‘’), que no se muestra correctamente. También puedo ver en el textonuevos caracteres de línea (\ n) ycitas (\ ").

¿Es correcto devolver un texto en ese formato a los consumidores o debería manejarlo mejor / de manera diferente?

Respuestas a la pregunta(0)

Su respuesta a la pregunta