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

    form, charset e server.... problemino di copia incolla

    ciao a tutti

    ho un form che invia una variabile testo a uno script php, questo script scrive il testo in un file html.

    se nella textarea scrivo la lettera "à", nel file html risultante compare correttamente & agrave;

    se invece di scriverla a mano, la à la copio e incollo da un'altra pagina,lo script me la cambia in & Atilde;& nbsp;



    PERCHE'???


    nello script php manipolo la variabile con il testo in questo modo
    codice:
    function controllaCampo($campo){
    $campo= htmlentities(stripslashes(nl2br($campo)),ENT_QUOTES,"UTF-8");
    $campo=ereg_replace("&lt;","<",$campo);
    $campo=ereg_replace("&gt;",">",$campo);
    $campo=ereg_replace("&quot;","\"",$campo);
    return $campo;
    }
    c'è qualche cosa di sbagliato?
    il fatto è che se provo il sistema in locale, funziona tutto per bene, invece provandolo dal vivo non va più....
    come faccio a ottenere le "à" normali??
    per dare un'occhiata all'html risultante basta andare qui

    grazie

  2. #2
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Prova a togliere UTF-8. La a accentata in UTF-8 dovrebbe essere trasformata in Atilde'.

  3. #3
    sapevo che quell'utf-8 mi avrebbe dato noie....

    ma possibile che non c'è nessun modo per risolvere senza togliere utf-8??

    se provo il sistema in locale funziona tutto bene,è solo quando lo uppo su altervista che dà problemi, per questo pensavo a qualche impostazione del server da cambiare...

    per quale motivo la a accentata viene trasformata in A tilde?

    nel momento in cui uno invia un form, i caratteri che codifica hanno?dipende dal browser,dal sistema operativo dell'utente, dal server del sito, dalle impostazioni del php, dal charset della pagina in cui si trova il form, o da che cosa?

  4. #4
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Se usi caratteri accentati non usare utf-8 ma ISO-8859-15.
    Probabilmene in locale hai win, mentre in remoto hai linux con apache configurato con AddDefaultCharset UTF-8.

  5. #5
    in effetti è proprio quello che facevo, prima di farmi venire il pallino dell'utf-8...
    dato che invio le pagine come application/xhtml+xml e ci metto pure il prologo xml(se l'user agent è ie le spedisco come normale html),posso mettere tranquillamente come charset iso-8859-15 o c'è qualche controindicazione?

  6. #6
    ho letto che il charset di default per xml è UTF-8, cosa cambia mettendo invece ISO-8859-1?

    i file xml non li riesco a validare, mi dice che application/xhtml-xml non è supportato dal servizio,
    però tidy mi dice che se uso una lettera accentata come id ocome name di un campo input commetto un errore...


    se nel form metto accept-charset="UTF-8" cosa succede?mi dispiace dace come charset alle pagine ISO-8859-1 solo per colpa di questo problema, e vorrei risolverlo...

  7. #7
    Ma possibile che non esista una semplice istruzione php che sia capace di standardizzare una stringa in iso-8859-15? anche sbagliando qualche lettera, poco importa ma che ci pensi da solo!

    Insomma uno che ha un forum non puo mettersi a dire a tutti di non fare copia incolla perche se no il W3C non gli approva il sito. non si puo far nulla?? aiuto!

  8. #8
    ma non è possibile che non esista un'istruzione per fargli fare il caffe, farlo zuccherare e farlo servire in mano a chi lo ha richiesto?
    no ... non esiste

    sono charset diversi e non si possono distinguere con facilità tra loro in automatico

    se l'hoster si è tolto il brio di mettere UTF8 vuol dire che tu devi salvare i file usando un editor che supporti e ti permetta di selezionare UTF-8 (ovvero in unicode)

    puoi provare context

  9. #9
    Daniele_dll grazie di avermi risposto.
    Purtroppo il problema sta tutto qui... L'utente che posta nel mio blog, magari con un bello e rapido copia e incolla, non si mette a usare programmi o cose simili... Quindi deve pensarci il sito a fare tutto.

    ...Eppure la questione l'ho risolta.
    Quello che sto per scrivere qui sotto è il modo in cui viene trattato il post dell'utente. Sembra funzionare... Per quanto mi riguarda è l'uovo di colombo!



    // questa funzione riesce a convertire parecchi simboli utf-8 ma non tutti!
    function ConvertIntoSGML($source)
    {
    $newString = '';
    for( $i = 0; $i < strlen( $source ) ; $i++ ) {
    $o = ord( $source{ $i } );

    $newString .= ( ( $o > 127 ) ? '&#'.$o.';': $source{ $i } );

    }
    return $newString;
    }




    $autore = addslashes(showtextintags($_POST['autore']));
    $email = addslashes(showtextintags($_POST['email']));
    $commento = addslashes(showtextintags($_POST['commento']));
    $commento = nl2br($commento);
    $commento = utf8_decode(ConvertIntoSGML($commento));
    $commento = str_replace("“","\"",$commento);
    $commento = str_replace("”","\"",$commento);
    $commento = str_replace("’","\'",$commento);



    negli str_replace vengono messi i caratteri utf-8 che sono "particolari" e sfuggono alla funzione. Purtroppo lo stesso forum di html.it non mi permette di scriverli nel loro formato utf-8 proprio perche li decifra nel sistema iso! ma immaginate che ci siano, nella loro tipica forma e commerciale, cancelletto e numero :P per qualsiasi problema o suggerimento contattatemi!

    Il sito è www.attorianzo.altervista.org/blog/index.php e come potete vedere questa funzione fa persino passare il test W3C! Spero sia utile a qualcuno e che mi possa anche aiutare a migliorarla

  10. #10
    asp asp



    quello non c'entra

    allora il discorso è questo

    il client inserisce dei dati che il server riceve in formato ASCII ... dopo di che questi dati, in base alle impostazioni di php vengono reimpacchettati

    di conseguenza se tu specifichi tramite header che il content type è di un tipo specifico (guarda che quasi sicuramente è iso-8859-15 non utf8) tu basta che lo rigutti fuori specificando il tipo ti funzionerà tutto


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 © 2024 vBulletin Solutions, Inc. All rights reserved.