Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    creazione file: problema di codifica

    Devo creare server-side un file XML che serve per essere caricato in Flash.
    Perchè funzioni bene, ovvero perchè Flash interpreti correttamente tutti i caratteri, compresi quelli speciali - in particolar modo € - deve essere codficato UTF8.
    Il problema è che il mio file, per quanto in origine sia appunto UTF8 (lo creo in NotePad e poi faccio l'upload), viene invece codificato ANSI al momento della creazione via PHP.
    E questo benché, nel codice PHP, io abbia cercato di forzare la codifica in UTF8.
    Il mio file creaxml.php, infatti, ha questo codice:
    Codice PHP:
    <?php
    header
    ('Content-type: application/xml; charset="utf-8"');
    ....
    $testo "<"."?xml version='1.0' encoding='UTF-8' ?".">\r\n<mySlideShow>";
    ....
    Ciononostante, il file non viene salvato con questa codifica, che è quella che mi serve!
    Come posso risolvere?
    Help urgente!!!...
    metatad
    graphic & web design

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    up?...
    metatad
    graphic & web design

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    proprio nessun aiuto?
    metatad
    graphic & web design

  4. #4
    Utente di HTML.it L'avatar di 22kakà
    Registrato dal
    Feb 2008
    Messaggi
    160
    prova a usare questa struttura ...

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
        <
    head>
            <
    meta http-equiv="content-type" content="text/html; charset=utf-8" />
        </
    head>

        <
    body>
        </
    body>
    </
    html

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Scusa, ma non ho ben capito... io devo creare un file XML, i tag HTML non ci vanno... oppure mi stai dicendo di metterli nella pagina PHP che crea il file XML?
    Perchè in questo caso, ancora non capisco... l'azione PHP è server-side, cioè avviene prima che il file sia caricato, e quindi prima che gli eventuali tag HTML (o XHTML) siano interpretati...
    metatad
    graphic & web design

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    inizia a verificare se il php da il charset corretto, poi risolvi il problema dell'xml.
    Prova con questo:
    codice:
    header('Content-type: text/xml;charset=utf-8');
    Tieni presente che se non usi la sintassi che il browser sa riconoscere questo ricade nel caso di default.
    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Si, avevo già usato l'header... in effetti, se guardo la codifica caratteri con cui FF legge il file XML generato da PHP, risulta essere UTF8, e non è possibile modificare questa visualizzazione, ma il file è poi, in effetti, codificato ANSI...
    Comunque, ho risolto in un'altro modo.
    Al posto del segno , che crea questi problemi, faccio uno str_replace e nel file XML scrivo il segno #, che viene interpretato correttamente da Flash, anche se il file non è UTF8, e poi, in Flash, faccio l'equivalente al contrario, e sostituisco il segno # con .
    Sono giusto due righe di codice in più che, è il caso di dire, mi cambiano la vita...
    Certo, il problema in sé rimane insoluto, ma almeno ho trovato una soluzione pratica...
    Grazie cmq!
    metatad
    graphic & web design

  8. #8
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Le problematiche di charset sono tra le più rompiscatole, non passa giorno in cui in un modo o nell'altro non ci sbatta la testa

    Per il tuo problema, sarebbe interessante vedere da dove arrivano questi dati, perchè non è sufficiente dare l'header corretto per trasformare tutto magicamente in utf8.

    se questi dati sono stati inseriti in db tramite un form la cui pagina aveva header iso allora i dati sono in iso e non diventano in utf8 a meno che tu nn usi la funzione utf8encode.

    Un altro metodo potrebbe essere quello di usare la query "SET NAMES utf8" prima di cominciare a estrarre i dati dal tuo database.

    ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    Per me queste sono problematiche nuove...
    Peraltro, i campi di tabella hanno la collation utf8_general_ci...
    Comunque, come dicevo, quel problema l'ho risolto spostando la soluzione in Flash; però, adesso ne è venuto fuori un'altro! (Ho aperto un post, su questo).
    Se la tabella non contiene dati - cosa possibile - la creazione del file XML risulta incompleta, ovvero mi scrive solo le prime due righe, quelle precedenti la chiamata al db!
    Ho provato anche a mettere delle condizioni if (se il campo è vuoto, attribuisco come valore il segno -, oppure delle sequenze di lettere tipo aaa), ma continua a non costruire il resto del file XML...
    Hai qualche idea, in proposito?
    metatad
    graphic & web design

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.