Autore Topic: accenti  (Letto 852 volte)

Offline areo

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus one
accenti
« il: 02 Febbraio 2011, 20:19:19 CET »
0
ciao a tutti!!

premessa: forse ho cannato sezione. spero di no!

vi spiego subito quello che devo fare e quello che non riesco a fare :)

importo da un file di testo dei dati -csv- dove ci sono (o ci possono essere) delle lettere accentate (questo file di testo non lo creo io, quindi mi aspetto di riuscire a gestire tutti i caratteri che l'utente inserira')
il programma lo importa (leggo riga per riga con readLine()), manipolo i dati in strutture in memoria (splitto le righe con .split() e salvo le stringhe in oggetti di tipo String), e faccio output a video (per ora su una textview), su un file di testo nella sd e su un db che creo dinamicamente.

ora ho testato un po' e ho problemi appunto con le lettere accentate.

la stringa (contenuta nel csv originale) ABILITòàèéùì nella textview viene stampata correttamente e anche nel file di testo che salvo nella sd. quindi la stringa una volta letta dal file originale viene mantenuta inalterata dato che nei due output risulta appunto corretta.
nel logcat invece la stessa stringa viene stampata come:  ABILITòà èéùì e la stessa stringa viene salvata cosi' nel db (quello di android.. sqlite)

:( perche'?!

da un lato (nella textview e nel file che salvo nella sd) vengono mantenuti inalterati gli accenti, mentre nel logcat e nel db invece ho un altro risultato.

avete qualche idea di cosa non imposto correttamente??

grazie 1000!

ciao!
« Ultima modifica: 02 Febbraio 2011, 20:20:53 CET da areo »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:accenti
« Risposta #1 il: 02 Febbraio 2011, 20:47:28 CET »
0
Sembra proprio un problema di text encoding (cosa che ho sempre trovato osticissima e che non ho ancora capito fino in fondo).

Credo che Android usi di default l'encoding UTF-8... magari hai creato il database con campi in latin-1 ?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline areo

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus one
Re:accenti
« Risposta #2 il: 03 Febbraio 2011, 10:43:28 CET »
0
stamattina ho ripreso in mano la cosa e mi vergogno un po' ad ammettere che non avevo notato che solo i nomi delle tabelle vengono storpiati in caso di accenti. la stessa stringa ABILITòàèéùì messa in un campo TEXT del db viene memorizzata perfettamente (e su consiglio di un amico che macina database e' meglio evitare di inserire caratteri strani nella struttura di un db, dato che prima o poi quei caratteri strani si ritorceranno contro il creatore :D ).

la mia soluzione e' usare nomi fittizi per le tabelle e usare una tabella d'appoggio (che gia' uso) per memorizzare i nomi delle table che l'utente inserisce/visualizza


ciao a tutti e grazie Bradipao per l'interessamento! (non ho ancora capito come mai il logcat storpia gli accenti ma in questo momento non e' mia priorita' scoprirlo)