Autore Topic: Conversione Stringhe e caratteri HTML  (Letto 1818 volte)

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Conversione Stringhe e caratteri HTML
« il: 23 Marzo 2011, 14:16:20 CET »
0
Allora, posto in questa sezione perchè la cosa si può risolvere anche senza android (anche se io la uso in android).
Ho bisogno di convertire una stringa scritta dall'utente, in modo che non abbia caratteri strani (se non sbaglio il server accetta solo UTF).
Ho fatto delle prove, caratteri come <,> " ' vengono accettati, ma altri come à,è,ò no, è colpa della libreria jersey usata dal server.
Cosa invece viene accettato è la codifica di questi caratteri in stile HTML tipo &agrave o cose simili.
Ora,quello che voglio fare io è prendere la scritta inserita dall'utente nella EditText e convertirla, tipo:
Ciào a tùtti -> Ci&agrave o a t&ugrave tti

Tralasciando il fatto che la codifica al momento l'ho inventata (chi si ricorda il codice è bravo), vorrei capire come fare.
Ho provato a usare la classe HTML ma per la conversione da HTML a stringa semplice Html | Android Developers è facile, invece  il contrario:
Html | Android Developers richiede uno spanned.
Il problema è che se nell'editText io faccio: et.getText() ottengo si uno spanned, ma con valori in piu che non voglio, tipo se il testo è:
"ciao"
lo spanned è: "<p>ciao</p>"
dato che io non voglio inviare il tag paragrafo, oltre a toglierlo a mano, ho altre soluzioni?
ho trovato il modo per far diventare una stringa uno spanned, ma boh, mi convince poco...
qui sotto il codice con un esempio di Text con caratteri strani, la rimozione manuale dei <p> e </p> non mi piace, neanche usando String.replace()...

Codice (Java): [Seleziona]
  public void doConversion(View v){
        String text = "This is a comment with strange symbols: <i know it> and i will fix \" it \" Bàez and èèè";
        SpannableStringBuilder ssb = new SpannableStringBuilder(text);
        String s2 = Html.toHtml(ssb);
//rimozione <p> e </p> ad inizio e fine
        System.out.println(s2.substring(3, s2.length()-4));
        String s3 = s2.substring(3, s2.length()-4);    
        textview.setText(s3);
    }
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Khali

  • Utente junior
  • **
  • Post: 70
  • Respect: +7
    • u.felloni
    • Mostra profilo
  • Play Store ID:
    weetme software
  • Sistema operativo:
    windows 7
Re:Conversione Stringhe e caratteri HTML
« Risposta #1 il: 23 Marzo 2011, 15:44:01 CET »
0
Qui fanno comodo le odiate(da me) espressioni regolari.
Ho trovato questa
String noHTMLString = htmlString.replaceAll("\\<.*?\\>", "");

Potrebbe essere un'idea.

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +203
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Conversione Stringhe e caratteri HTML
« Risposta #2 il: 23 Marzo 2011, 16:12:22 CET »
0

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Conversione Stringhe e caratteri HTML
« Risposta #3 il: 23 Marzo 2011, 23:19:19 CET »
0
se caso non trovi niente di meglio:
Escape HTML special characters from a String - Real's Java How-to
bella questa,ma spero di non doverla usare... :D
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Conversione Stringhe e caratteri HTML
« Risposta #4 il: 24 Marzo 2011, 13:51:02 CET »
0
ho trovato una libreria mooolto utile:
Lang -
 Download Commons Lang

peccato che sono 400kb e io uso una classe solo... devo andare a spulciarmi i sorgenti e prendere solo il codice che mi interessa!
la classe utile per fare quel che mi serve è:

StringEscapeUtils (Commons Lang 2.6 API)
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia