Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    PHP+XML DOM - quale codifica caratteri???

    Ciao a tutti,
    scusate l'argomento forse già trattato ma io proprio non capisco una cosa:
    uso php con dom xml e devo prima scrivere e poi leggere dei dati da un file xml che può contenere anche caratteri accentati e varie ed eventuali. Semplificando posso scriverlo così:
    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <news>
        <post id="2">
            <titolo>CIAO2</titolo>
            <testo>Il cane &egrave; il miglior amico dell'uomo</titolo>
        </post>
        <post id="1">
            <titolo>CIAO</titolo>
            <testo>Ciao a tutti</titolo>
        </post>
    </news>
    Per la scrittura nessun problema, uso il metodo htmlentities() e tutti i caratteri accentati e via discorrendo vengono scritti senza errori nell'xml con codifica del tipo &_egrave; &_iacute; (senza underscore) ecc...

    Solo che quando vado a leggerlo mi dà il seguente errore:
    codice:
    Warning: DOMDocument::load() [domdocument.load]: Entity 'egrave' not defined in file
    cioè non riconosce la &_egrave. Ho salvato tutti i file con codifica utf-8...è sbagliato?????!!!!!

    Grazie mille...ciao!

  2. #2
    up

  3. #3
    Ma perche' usi htmlentities?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    invece di usare un html entities usa i CDATA

  5. #5
    invece di usare un html entities usa i CDATA
    Cosa sarebbero?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    i CDATA sono tag xml che possono contenere qualsiasi carattere.
    li usi per fare escape di possibili dati pericolosi (tipo simboli di maggiore e minore)

    <root>
    <node><![CDATA[ qui posso scrivere tutto quello che voglio èèèè '''' < > > ><<< ]]></node>
    </root>

  7. #7
    CDATA e' un "contenitore" in cui inserire testo che non deve essere interpretato dal parser XML come i caratteri < e &. Google is your friend -> http://www.w3schools.com/xml/xml_cdata.asp

    Ma comunque non c'e' ragione, se usi la codifica utf8, per trasformare le lettere accentate in entita' HTML: usale normalmente e basta, qual e' il problema?

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    Originariamente inviato da k.b
    CDATA e' un "contenitore" in cui inserire testo che non deve essere interpretato dal parser XML come i caratteri < e &. Google is your friend -> http://www.w3schools.com/xml/xml_cdata.asp

    Ma comunque non c'e' ragione, se usi la codifica utf8, per trasformare le lettere accentate in entita' HTML: usale normalmente e basta, qual e' il problema?
    quoto
    e se devi fare escape di caratteri usa ciò che che l'xml già ti offre di base.

  9. #9
    quoto
    e se devi fare escape di caratteri usa ciò che che l'xml già ti offre di base.
    Cioè voi dite che lasciando utf-8 in tutte le pagine del sito e inviando del testo del tipo:
    codice:
    èèòòòò " ' < >
    scritti così senza trasformarli in entità non dovrebbero esserci errori???
    Ma scusate utf-8 non ha solo le cifre da 0 a 9 e le lettere a-z A-Z???

  10. #10
    Originariamente inviato da maxpower90
    Ma scusate utf-8 non ha solo le cifre da 0 a 9 e le lettere a-z A-Z???
    Ma proprio no
    UTF8 e' una codifica multibyte dell'intero set di code point di unicode, cio' significa che con utf8 e' possibile codificare OGNI carattere presente in ogni alfabeto conosciuto.

    E comunque anche se fosse come dici tu, cosa ti fa pensare che la & e il ; fanno parte di quei gruppi?

    PRIMA studiare POI programmare.

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.