Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Java]codifica caratteri

    Salve ragazzi, ho un piccolo problema. ho realizzato un programma in java che legge i dati da un database access e li inserisce in uno mysql. Il problema sta che una tabella sola ha alcuni campi che sono criptati e che quindi leggendoli normalmente hanno dei caratteri particolari. Anticipo subito che i dati nn posso decriptarli ma li devo x forza trasferire così. Quindi il problema sta che quando trasferisco questi dati da un database all'altro, se x esempio nel db access c'è un quadrato, in mysql m spunta un punto interrogativo. Come posso risolvere il problema?

    Per l'inserimento dei dati al db mysql uso il prepStat.setString(i+1, record[i]); . I campi suddetti sono in entrambi i db di tipo text.

  2. #2
    analizzando bene il mio codice,ho notato che già in fase d lettura dal database access ho il problema:

    la funzione è la stessa della pillola presenta sul forum x la lettura di dati da un database access.

    codice:
       public Vector eseguiQuery(String query) {
          Vector v = null;
          String [] record;
          int colonne = 0;
          try {
             Statement stmt = db.createStatement();     // Creo lo Statement per l'esecuzione della query
             ResultSet rs = stmt.executeQuery(query);   // Ottengo il ResultSet dell'esecuzione della query
             v = new Vector();
             ResultSetMetaData rsmd = rs.getMetaData();
             colonne = rsmd.getColumnCount();
    
             while(rs.next()) {   // Creo il vettore risultato scorrendo tutto il ResultSet
                record = new String[colonne];
                for (int i=0; i<colonne; i++) record[i] = rs.getString(i+1);
                v.add( (String[]) record.clone() ); 
             }
             //System.out.println("colonne"+colonne);
             rs.close();     // Chiudo il ResultSet
             stmt.close();   // Chiudo lo Statement
          } catch (Exception e) { e.printStackTrace(); errore = e.getMessage(); }
    
          return v;
       }
    sicuramente il problema a questo punto sarà il casting al tipo string, quando inserisco i dati nell'array record. Quindi adesso,come faccio a fargli fare un casting giusto?
    Xchè nn so come mai,se apro il database accesss con access, vedo un quadratino,mentre appena lo leggo con la funzione eseguiQuery mi spunta un punto interrogativo...

  3. #3
    v posto un esempio (nn è il mio dababase ma una immagine trovata su internet). Il campo descrizione x esempio contiene il quadrato come primo carattere,ma quando io lo leggo in java, mi stampa invece "'?"

    http://www.freemao.com/pics/x.JPG

  4. #4
    ho notato che se apro il database con access e faccio copia incolla del campo errato che m da (il carattere quadratino che si vede pure nell'immagine precedente) , se lo metto dentro system.out.println() , mi stampa sempre il carattere ?. Come mai?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.