Visualizzazione risultati 1 fino 11 di 11

Discussione: Codifica e acuta (é) in mySQL

  1. #1
    unisatripboard non è connesso Neofita
    Data registrazione
    09-12-2015
    Messaggi
    17

    Predefinito Codifica e acuta (é) in mySQL

    Salve,
    ho un problema quando inserisco una parola in cui è presente la e acuta (é). Nel database compare questo détendu.
    E' un problema di codifica di caratteri ma non riesco a risolvere.
    Potete aiutarmi?

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Come stai inserendo i dati nel database? Come li estrai e visualizzi?

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

    Predefinito

    la stringa letta in utf-8 corrisponde ad una e acute détendu mentre letta in iso-8859-1 si legge détendu

  4. #4
    unisatripboard non è connesso Neofita
    Data registrazione
    09-12-2015
    Messaggi
    17

    Predefinito

    Ho risolto per quanto riguarda il database, Ora il problema è quando visualizzo i dati in JSON. Quando trova la e acuta mette il campo null.
    Ho messo in php
    header("Content-type: text/html; charset=utf-8");
    mysqli_set_charset($connect, "utf8");
    e quando mostro il json esce D\u00e9tendu.
    Come risolvo ora?

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

    Predefinito

    json di php accetta solo stringhe utf-8 valide altrimenti restituisce null..
    Quindi apri un file imposta iso-8859-1 è inserisci détendu adesso salvalo... prova ad aprirlo in utf-8 è ora vedrai détendu.
    Cioè alla funzione json devi passare quella stringa senza modificarla nel database.. mi ripeto détendu è letto in iso-8859-1 la passi a json è funzionerá..
    Se ho capito male.. spiega come la leggi e la codifica in uso
    Ultima modifica di darbula : 06-10-2016 alle ore 19.08.19

  6. #6
    unisatripboard non è connesso Neofita
    Data registrazione
    09-12-2015
    Messaggi
    17

    Predefinito

    Questo è il codice. Dove devo fare la conversione?
    Codice PHP:
    <?php
    header
    ('Content-Type: application/json; Charset=UTF-8');
    include
    "connect.php";
    mysqli_set_charset($connect, "utf8");
    $sql = "select * from politici";
    $result = mysqli_query($connect, $sql) or die("Error in Selecting " . mysqli_error($connect));
    $emparray = array();
    while(
    $row =mysqli_fetch_assoc($result))
    {
    $emparray[] = $row;
    }
    echo
    json_encode($emparray);
    mysqli_close($connect);
    ?>

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

    Predefinito

    aspetta.. da phpmyadmin come la visualizzi?? ma la pagina è in utf-8 di phpmyadmin? Il problema puo darsi che i dati già salvati nel database sono in iso-8859-1.. togli questa mysqli_set_charset($connect, "utf8"); poiche se non trova stringhe utf-8 valide li converte in unicode

  8. #8
    unisatripboard non è connesso Neofita
    Data registrazione
    09-12-2015
    Messaggi
    17

    Predefinito

    Senza quella istruzione mi da null. Quando salvo i dati nel db faccio sempre mysqli_set_charset ecc

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

    Predefinito

    uffa non riesco ancora ad afferrare... prova a recuperlo creando una pagina php con header utf-8 è senza mysqli_set_charset($connect, "utf8");.. devo stabilire come si visualizza la stringa in partenza

  10. #10
    unisatripboard non è connesso Neofita
    Data registrazione
    09-12-2015
    Messaggi
    17

    Predefinito

    Ok ho risolto con preg_replace.
    Ultimo problema, nel db ho memorizzato la PATH dell'immagine es ./imgPolitici/juppe.jpg.
    Ora in JSON mi da questo "image":".\/imgPolitici\/juppe.jpg", come tolgo \?

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

    Predefinito

    potevi risolvere diversamente.. e con json_decode che stringa ottieni? json valido effetua questa aggiunta.
    EDIT: Da php 5.4 in pou potresti aggiungere questoJSON_UNESCAPED_SLASHES a json_ebcode ($var, JSON_UNESCAPED_SLASHES);
    Ultima modifica di darbula : 06-10-2016 alle ore 21.30.50

Regole di scrittura

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