Visualizzazione risultati 1 fino 3 di 3

Discussione: Caratteri utf-8 in echo

  1. #1
    personalthings non è connesso Utente giovane
    Data registrazione
    10-08-2013
    Messaggi
    73

    Predefinito Caratteri utf-8 in echo

    Ciao ragazzi,

    premetto che il codice funziona perfettamente, il mio è solo un problema di visualizzazione dentro un comando echo.

    Ho 2 pagine, nella prima ho inserito uno script che, collegato a una pagina di controllo (la seconda), mi serve per controllare la presenza o meno di un determinato record facendo click su un pulsante.

    Nello specifico:

    Pag1.php

    Codice:
    <script type="text/javascript">
    $(document).ready(function() {
        $('.loading').hide();    
    });
    
    function check_modifica_volto(){
        var modifica_volto = $("#modifica_volto").val();
        $('.loading').show();
        $.post("../pages/checkvolti.php", {
            modifica_volto: $('#modifica_volto').val(),
        }, function(response){
            $('.info').fadeOut();
            $('.loading').hide();
            setTimeout("finishAjax('info', '"+escape(response)+"')", 450);
        });
        return false;
    }
    
    finishAjax('modifica_volto', response);
    
    function finishAjax(id, response){
        $('#'+id).after(response).fadeIn(1000);
    } 
    </script>
    Codice HTML:
    <input type=button value="Controlla" onClick="return check_modifica_volto();">
                                           
          <div id="info"></div>
    Nella seconda faccio un semplice controllo if, dopo il $_REQUEST:

    Codice PHP:
    if risultato > 0
    {
    echo
    "è già presente";
    }
    else
    {
    echo
    "non è presente";
    }
    Il risultato in stampa è questo:

    %0Aè%20già%20DA%20%27presente%27
    Sapete come mai?
    Ho provato ad inserire il comando meta, ma inserendolo il codice mi prende anche quello e tutto ciò che è dentro l'head:

    %20%20%20%20%3CMETA%20HTTP-EQUIV%3D%22CONTENT-TYPE%22%20CONTENT%3D%22TEXT/HTML%3BCHARSET%3DISO-8859-1%22%3E%0A%0Aè%20già%20DA%20%27presente%27

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

    Predefinito

    Non credo il problema abbia a che fare con PHP od UTF-8.

    In fondo a check_modifica_volto c'è una chiamata alla funzione escape, che converte simboli in %xx. Ad esempio uno spazio diventa %20.
    Ultima modifica di dreadnaut : 21-09-2022 alle ore 18.33.43

  3. #3
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    jQuery.post() è una scorciatoia di jQuery.ajax() con metodo POST.
    data
    Type: PlainObject or String or Array
    Data to be sent to the server. If the HTTP method is one that cannot have an entity body, such as GET, the data is appended to the URL.

    When data is an object, jQuery generates the data string from the object's key/value pairs unless the processData option is set to false. For example, { a: "bc", d: "e,f" } is converted to the string "a=bc&d=e%2Cf". If the value is an array, jQuery serializes multiple values with same key based on the value of the traditional setting (described below). For example, { a: [1,2] } becomes the string "a%5B%5D=1&a%5B%5D=2" with the default traditional: false setting.

    When data is passed as a string it should already be encoded using the correct encoding for contentType, which by default is application/x-www-form-urlencoded.

    In requests with dataType: "json" or dataType: "jsonp", if the string contains a double question mark (??) anywhere in the URL or a single question mark (?) in the query string, it is replaced with a value generated by jQuery that is unique for each copy of the library on the page (e.g. jQuery21406515378922229067_1479880736745).

    {"data" : "valore"} è plain object o addirittura json (è questione di sintassi, apici doppi e caratteri consentiti).
    $_POST['elemento'] o $_REQUEST['elemento'] se è creato con il valore nativo di $_POST può usare urldecode internamente.
    Inoltre spesso Javascript converte a b in a%20b invece del semplice a+b (per una query string http://=www.domain.tld/?qualcosa=a+b è conforme alla specifica ma anche %20. Si applica anche al corpo con metodo POST)

    Note:

    The GET variables are passed through urldecode(). Nel manuale php.net con $_GET mentre si può applicare anche al metodo POST sebbene vecchie versioni erroneamente non utilizzavano urldecode per multipart/form-data o addirittura se non application/x-www-form-urlencoded.
    Ultima modifica di darbula : 22-09-2022 alle ore 08.10.26

Regole di scrittura

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