Visualizzazione risultati 1 fino 17 di 17

Discussione: [XML] Encoding per caratteri accentati

  1. #1
    Guest

    Exclamation [XML] Encoding per caratteri accentati

    ciao a tt, ho un file xml:
    Codice:
    <?xml version="1.0" encoding="windows-1252" ?> 
    ....
    che poi richiamo in php con simplexml_load_file(); ma quando lo richiamo i caratteri accentati escono .."strani", la è esce come una A accentata e con due punti. E' possibile evitare che ciò avvenga? come? ciao

  2. #2
    L'avatar di SolitaryExplorer
    SolitaryExplorer non è connesso Utente storico
    Data registrazione
    10-08-2005
    Residenza
    Veneto
    Messaggi
    1,949

    Predefinito

    Quale programma ti interpreta male i caratteri?
    Non offro assistenza privata. / Se vuoi anche tu una userbar come queste, basta chiedere.


  3. #3
    Guest

    Predefinito

    php con simplexml_load_file
    scrivendo è esce un carattere del tt errato.
    in attesa di risposta ciao

  4. #4
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

  5. #5
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Purtroppo non è molto user-friendly, ma potresti provare a scrivere i caratteri speciali con questo sistema: &#(numero unicode); dove (numero unicode) indica, appunto, il numero di carattere secondo il codice Unicode (per non diventare pazzo, fino al numero 255 coincide con il codice ASCII esteso e le lettere accentate italiane si trovano tutte lì dentro). Qualche prova a suo tempo l'avevo fatta e ho fatto la spiacevole scoperta che le entità HTML non vengono "ereditate" in XML...

    Un esempio? Il carattere è dovresti riuscire a scriverlo con &# 232;... (togli lo spazio, visto che il forum decide di convertirmelo nel carattere come l'ho scritto... uffi)

    Stammi bene...
    Ultima modifica di dementialsite : 25-08-2007 alle ore 22.29.35
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da mythologia Visualizza messaggio
    Sia con IE che con FF?
    Si, il problema è con entambi, ma a peggiorare la situazione è il php che mi dà un fatal error e nn mi esegue più la pagina!
    Citazione Originalmente inviato da dementialsite Visualizza messaggio
    Purtroppo non è molto user-friendly, ma potresti provare a scrivere i caratteri speciali con questo sistema: &#(numero unicode); dove (numero unicode) indica, appunto, il numero di carattere secondo il codice Unicode (per non diventare pazzo, fino al numero 255 coincide con il codice ASCII esteso e le lettere accentate italiane si trovano tutte lì dentro). Qualche prova a suo tempo l'avevo fatta e ho fatto la spiacevole scoperta che le entità HTML non vengono "ereditate" in XML...

    Un esempio? Il carattere è dovresti riuscire a scriverlo con &# 232;... (togli lo spazio, visto che il forum decide di convertirmelo nel carattere come l'ho scritto... uffi)

    Stammi bene...
    255!!! Quindi li dovrei provare tt e poi prendere quelli più usati(è é à ò ù), un ultima cosa, che encoding uso ?

    Grazie ad entambi per le risposte, ciao:).

  7. #7
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da NetSkin Visualizza messaggio
    ... 255!!! Quindi li dovrei provare tt e poi prendere quelli più usati(è é à ò ù) ...
    Meno male che le tabelle dei codici ASCII sono di pubblico dominio...
    http://www.asciitable.it/ascii.asp
    http://www.asciitable.it/asciiext.asp

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,295

    Predefinito

    ma se alla fine devi visualizzarli, non è più semplice usare &agrave; e le altre entity con un nome ? (che per funzionare in XML devono essere scritte come &amp;agrave; purtroppo... )

    Questa è comunque una via contorta. La via corretta sarebbe sapere in qualche formato salvi il file ed inserire quello come encoding="...". A quel punto tutte le lettere accentate funzionerebbero senza ulteriori rigiri (un po' come il sito di AV quando scapocciava).

    Se puoi scegliere, dovresti salvare il file con lo stesso encoding che poi usi nelle tue pagine web, ovvero quello definito da
    Codice HTML:
    <meta http-equiv="Content-Type" content="text/html; charset= ... " />
    Ultima modifica di dreadnaut : 27-08-2007 alle ore 11.43.26

  9. #9
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    ma se alla fine devi visualizzarli, non è più semplice usare &agrave; e le altre entity con un nome ? (che per funzionare in XML devono essere scritte come &amp;agrave; purtroppo... )
    Poco tempo fa avevo modificato un generatore che ho creato di Feed RSS e per essere valido ho dovuto trasformare tutti i caratteri "strani" in entità numeriche. Facendo come dici tu mi dava errore su "&amp;". Per quella ragione ho scritto questo tutorial che potrebbe essere utile per trasformare tutti i caratteri nelle relative entità numeriche direttamente attraverso il PHP.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  10. #10
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,295

    Predefinito

    &amp; è un entità corretta nell'xml, una delle poche disponibili, inserità proprio per dare la possibilità di "schermare" tutte le altre entity esistenti; il validatore di certo non si lamenta della loro presenza. Sicuro che il problema nel tuo rss fosse quello?

    In più, direi che di feed con le entity convertite in valori numerici non ne ho mai visti....

  11. #11
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Qui c'è scritto sia come hai detto tu ("&amp;entità") che come ho detto io (entità numeriche).
    L'altra volta avevo sostituito "&amp;entità" con il valore numerico e non mi aveva dato più problemi.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  12. #12
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,295

    Predefinito

    scusa, non intendevo dire che le entità numeriche fossero scorrette solo mi sembra importante far notare che si possono usare anche quelle "testuali", perché sono ammesse e funzionano - sebbene tu ne abbia avuto esperienza negativa.

    Entrambi i metodi sono semi-illeggibili purtroppo, ma quelle testuali sono consigliabili perché la pagina risultante avrà un sorgente più amichevole

  13. #13
    Guest

    Predefinito

    eccomi qui, ho pensato che la soluzione migliore fosse quella dello:
    &amp;egrave; , quindi ho usato htmlentities() [corrispondente a htmlspecialchars() ] , ma nel momento in cui salvo i valori in questo modo:
    htmlentities($_POST['var'])
    scrivendo in un input var è mi dà come risultato:
    &egrave;
    e non &amp;egrave; mentre scrivendo in fwrite($str,htmlentities($stringa)); funziona.
    Il problema è che in $stringa ho anche altri valori oltre al testo da &ampare! Da cosa dipende? ciao
    p.s. ho già provato con trim(...); ;)

  14. #14
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,295

    Predefinito

    dovresti dare una seconda passata con
    Codice PHP:
    $stringa = str_replace('&', '&amp;', $stringa);
    in modo da trasformare &qualcosa; in &amp;qualcosa.

  15. #15
    Guest

    Predefinito

    mh...ora mi scrive nel file xml: (ho scritto è)
    &amp;egrave;
    e nella pagina php:
    &amp;egrave;
    ! perchè? grazie ancora, ciao

  16. #16
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Nella pagina in PHP dovresti poi rifare il passaggio contrario:
    Codice PHP:
    $stringa=str_replace("&amp;","&",$stringa);
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  17. #17
    Guest

    Predefinito

    ah, e poi stampare il risultato, ok, grazie ancora e ciao
    EDIT: funziona, grazie ancora a tt voi.
    Ultima modifica di NetSkin : 28-08-2007 alle ore 08.42.13

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •