Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    29

    Problema di encoding utf-8 in una form html

    Ciao a tutti,
    devo fare un semplice form in html (via php), ma non riesco ad ottenere il testo scritto nella form in una variabile PHP per problemi di encoding.

    Se scrivo nella form "è una prova", $text è valorizzato come "è una prova".

    Se non specifico "utf-8" nell'header, "è una prova" viene valorizzato correttamente, ma io ho bisogno che la form accetti anche caratteri giapponesi, arabi etc.

    Può essere un problema di configurazione del php.ini? Idee? grazie 1000!

    Ecco il codice di una pagina PHP di test:
    Codice PHP:
    <?php

    function echocr($str)
    {
        echo 
    $str "\r\n";
    }

    function 
    main()
    {
        
    header("Content-type: text/html; charset=utf-8");
        
    echocr("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
        
    echocr("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
        
    echocr("<head>");
        
    echocr("<title>test</title>");
        
    echocr("</head>");
        
    echocr("<body>");    
            
        
    $text $_POST["text"];
        
        
    echocr("Text: " htmlentities($text));    
        
    echocr("
    "
    );
        
        
    echocr("<form method=\"post\" action=\"" $PHP_SELF "\">");
        
    echocr("<input type=\"text\" name=\"text\"></input>");
        
    echocr("<input type=\"submit\" value=\"go\"></input>");
        
    echocr("</form>");
        
        
    echocr("</body>");    
        
    echocr("</html>");    
    }

    main();

    ?>

  2. #2
    Beh, ma perché non hai indicato il Charset nel documento.

    Prova ad aggiungere tra l'header ed il doctype

    echocr("<?xml version="1.0" encoding="UTF-8"?>");

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    29
    Originariamente inviato da artorius
    Beh, ma perché non hai indicato il Charset nel documento.

    Prova ad aggiungere tra l'header ed il doctype

    echocr("<?xml version="1.0" encoding="UTF-8"?>");
    Fatto, ma nulla cambia.
    Sia Opera che FF rilevano cmq che l'encoding è utf-8.

    Non riesco proprio a capire dove sbaglio...

    Qualcuno può gentilmente provare il codice sopracitato, e provare se riscontra la stessa cosa? giusto per capire se può essere un problema della configurazione di php o apache.. grazie

  4. #4
    Scusa, a mia discolpa posso solo dire che è lunedì...

    devi usare htmlentities($text, ENT_QUOTES, 'UTF-8') perché funzioni.
    E pensare che ho avuto il tuo stesso problema Venerdì...

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    37
    se hai ancora il problema cercati sul manuale le funzioni native uft8_encode e utf8_decode.
    ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    29
    Grazie 1000 ad entrambi, risolto, ora ho una panoramica + chiara
    Ciao e grazie ancora!

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.