Visualizzazione risultati 1 fino 21 di 21

Discussione: [Json/PHP/DB] Stampare caratteri speciali

  1. #1
    Guest

    Predefinito [Json/PHP/DB] Stampare caratteri speciali

    Ciao a tutti, sto avendo problemi con i caratteri speciali se salvo ad esempio una stringa che finisce per "à" nel mio db e poi la stampo sotto il formato json non mi stampa la stringa.
    1)Secondo voi dovrei convertire la "à" nel formato tipo "\u00e0"
    2)La codifica dei caratteri per il db quale mi consigliate io uso "latin1_swedish_ci"


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

    Predefinito

    Il problema può essere la codifica della pagina in cui visualizzi i risultati. Controlla di usare lo stesso charset ovunque e dovresti essere a posto.

  3. #3
    Guest

    Predefinito

    L'estenzione del file è di tipo .php il tipo di file esce come "application/json" per una maggiore leggibilità come codifica "ISO-8859-1", per convertire i caratteri speciali come posso fare esiste una funzione.

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

    Predefinito

    E nella pagina in cui visualizzi i risultati, che codifica hai il scelto con il <meta> charset?

  5. #5
    Guest

    Predefinito

    Ti mostro un esempio di quello che sto cercando di realizzare https://graph.facebook.com/cocacola

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

    Predefinito

    E tre: qual'è il charset della pagina del tuo sito in cui visualizzi i risultati?

  7. #7
    Guest

    Predefinito

    utf-8

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

    Predefinito

    Citazione Originalmente inviato da hotmailpower Visualizza messaggio
    il tipo di file esce come "application/json" per una maggiore leggibilità come codifica "ISO-8859-1"
    Citazione Originalmente inviato da hotmailpower Visualizza messaggio
    utf-8
    Noti il problema da solo?

  9. #9
    Guest

    Predefinito

    si, ho provato a cambiare codifica ma non funziona lo stesso, i caratteri speciali non si visuallizano, il testo viene stampato come null.

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

    Predefinito

    (null) non è un problema di codifica però. Riesci a mettere online un mini-esempio, e riportarne il codice qui?

  11. #11
    Guest

    Predefinito

    Certo, il codice:
    Codice PHP:
    <?php
    session_start
    ();
    header("Cache-Control: no-cache, must-revalidate");
    header("Expires: Mon, 26 Jan 2010 05:00:00 GMT");
    header("Content-type: application/javascript; charset=utf-8");

    echo
    $array = json_encode(array(
    'id' => 1,
    'prova' => "Già",
    'prova2' => "Gia"
    ));

    ?>
    Online:
    http://hotmailpower.altervista.org/es_av.php

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

    Predefinito

    Dalla guida di json_encode():
    This function only works with UTF-8 encoded data.
    Il problema è che lo script php è salvato in un file con encoding diverso da utf-8. Devi vedere se puoi cambiarlo nell'editor che usi.

  13. #13
    Guest

    Predefinito

    Ho provato a modificarlo, ma da lo stesso risultato, ho usato il blocco note.

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

    Predefinito

    Neanche con Ctrl-F5?

    Non credo però che il blocco note sia il più agile editor per modificare encoding. Prova con un altro, e.g. notepad 2.

  15. #15
    Guest

    Predefinito

    Ho provato come dici tu ma niente, non riesco a capire dove sta l'errore...
    Ma c'è un modo per convertire la "à" in "\u00e0", perchè l'errore appare solo con i caratteri speciali.

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

    Predefinito

    Stesso codice che hai scritto sopra, ma in un file salvato come utf-8: http://dreadnaut.altervista.org/test/json-utf8.php

    Puoi usare utf8_encode() per convertire singole stringhe.

  17. #17
    Guest

    Predefinito

    L'unica soluzione mi sembra, il problema che il formato json mi sta dando problemi anche con i link per i siti.

    Codice PHP:
    <?php
    session_start
    ();
    header("Cache-Control: no-cache, must-revalidate");
    header("Expires: Mon, 26 Jan 2010 05:00:00 GMT");
    header("Content-type: application/javascript; charset=utf-8");

    echo
    $array = json_encode(array(
    'id' => 1,
    'prova' => "Già",
    'prova2' => "http://google.it"
    ));


    ?>
    Stampa
    Codice PHP:
    {"id":1,"prova":"Gi\u00e0","prova2":"http:\/\/google.it"}
    Ho usato stripslashes ma non funziona, come potrei risolvere? ;)

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

    Predefinito

    Quello è l'output corretto, cos'altro vuoi fare? Se elimini gli slash poi "rompi" la decodifica lato javascript.

  19. #19
    Guest

    Predefinito

    Vorrei dare una maggiore leggibilità al testo, però se dici che non è possibile. ;)

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

    Predefinito

    JSON è una codifica, non deve essere leggibile Una volta che lo ricevi via javascript, lo decodifichi e lo inserisci nella pagina, tutti i caratteri tornano normali.

  21. #21
    Guest

    Predefinito

    Ma facebook come fà. xD

Regole di scrittura

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