Visualizzazione dei risultati da 1 a 6 su 6

Discussione: utf8 ma non va..

  1. #1

    utf8 ma non va..

    sto diventando pazzo,
    provo da pazzo a spiegarvi il problema:

    php my admin:
    Set di caratteri mysql = UTF-8 Unicode ( di default)
    Collazione della connessione di mysql = utf8_general_ci (di default)
    Database = utf8_general_ci
    Tabelle = utf8_general_ci

    ora

    pagina php che gestisce(inserisce, modifica, elimina) i dati dal db:
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    variabile per l'inserimento:
    $variabile = trim(addslashes($_POST['variabile']));

    variabile per la modifica:
    es.in un campo text/area = <?php echo stripslashes($D['variabile']); ?>

    file config.php che gestisce il db:
    // MySQL Charset Collation:
    mysql_query("SET NAMES 'utf-8'");
    mysql_query("SET collation_connection = 'utf8_unicode_ci'"); ecc. ecc..

    ora..

    pagina che dovrebbe prelevare i dati dal db con query:
    <?php
    $colname_rsArtista = "-1";
    if (isset($_GET['spettacolo'])) {
    $colname_rsArtista = (get_magic_quotes_gpc()) ? $_GET['spettacolo'] : addslashes($_GET['spettacolo']);
    }
    mysql_select_db($database_viva, $viva);
    $query_rsArtista = sprintf("SELECT * FROM spettacoli WHERE spettacoli_id = %s", $colname_rsArtista);
    $rsArtista = mysql_query($query_rsArtista, $viva) or die(mysql_error());
    $row_rsArtista = mysql_fetch_assoc($rsArtista);
    $totalRows_rsArtista = mysql_num_rows($rsArtista);
    ?>

    ecc..ecc..

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    variabile per la stampa a video:
    <?php echo $row_rsArtista['variabile']; ?>

    ok!!!!

    quindi tutto settato in UTF8,
    nella pagina che gestisce i dati viene visualizzato tutto alla perfezione ma nel database i caratteri speciali vengono stampati come: es. ' = \' ancora è = A(strano) e quindi al momento del passaggio alla pagina definitiva mi vengono restituito l'apostrofo come \' ma la ( è ) viene visualizzata senza errori nonostante nel database sia codificata.

    sapete darmi una mano?
    ho provato con i vari htmlentities ecc. ma la (è) diventa un quadratino e l'apostrofo lo visualizza bene

    grazie in anticipo

  2. #2
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544

    Re: utf8 ma non va..

    Originariamente inviato da sberla_J.
    sto diventando pazzo,
    provo da pazzo a spiegarvi il problema:

    php my admin:
    Set di caratteri mysql = UTF-8 Unicode ( di default)
    Collazione della connessione di mysql = utf8_general_ci (di default)
    Database = utf8_general_ci
    Tabelle = utf8_general_ci

    ora

    pagina php che gestisce(inserisce, modifica, elimina) i dati dal db:
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    variabile per l'inserimento:
    $variabile = trim(addslashes($_POST['variabile']));

    variabile per la modifica:
    es.in un campo text/area = <?php echo stripslashes($D['variabile']); ?>

    file config.php che gestisce il db:
    // MySQL Charset Collation:
    mysql_query("SET NAMES 'utf-8'");
    mysql_query("SET collation_connection = 'utf8_unicode_ci'"); ecc. ecc..

    ora..

    pagina che dovrebbe prelevare i dati dal db con query:
    <?php
    $colname_rsArtista = "-1";
    if (isset($_GET['spettacolo'])) {
    $colname_rsArtista = (get_magic_quotes_gpc()) ? $_GET['spettacolo'] : addslashes($_GET['spettacolo']);
    }
    mysql_select_db($database_viva, $viva);
    $query_rsArtista = sprintf("SELECT * FROM spettacoli WHERE spettacoli_id = %s", $colname_rsArtista);
    $rsArtista = mysql_query($query_rsArtista, $viva) or die(mysql_error());
    $row_rsArtista = mysql_fetch_assoc($rsArtista);
    $totalRows_rsArtista = mysql_num_rows($rsArtista);
    ?>

    ecc..ecc..

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    variabile per la stampa a video:
    <?php echo $row_rsArtista['variabile']; ?>

    ok!!!!

    quindi tutto settato in UTF8,
    nella pagina che gestisce i dati viene visualizzato tutto alla perfezione ma nel database i caratteri speciali vengono stampati come: es. ' = \' ancora è = A(strano) e quindi al momento del passaggio alla pagina definitiva mi vengono restituito l'apostrofo come \' ma la ( è ) viene visualizzata senza errori nonostante nel database sia codificata.

    sapete darmi una mano?
    ho provato con i vari htmlentities ecc. ma la (è) diventa un quadratino e l'apostrofo lo visualizza bene

    grazie in anticipo
    Per fare in modo che utf8 legga correttamente i caratteri speciali devi inserire il suo codice, poi utf8 lo converte.

    Qui ci sono i codici: http://riemann.unica.it/studenti/guida/caratteri.html

  3. #3

    Grazie ht28

    Ma ho risolto inserendo ( stripslashes ) davanti a le variabili che riprendono i dati dal database, quindi:

    database, tabelle, campi, pagina invio, pagina richiesta: tutto uft8

    variabile sulla pagina richiesta: es. <?php echo stripslashes($row_nomerecordset['variabile']); ?>

    ciao grazie comunque.

  4. #4
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544

    Re: Grazie ht28

    Originariamente inviato da sberla_J.
    Ma ho risolto inserendo ( stripslashes ) davanti a le variabili che riprendono i dati dal database, quindi:

    database, tabelle, campi, pagina invio, pagina richiesta: tutto uft8

    variabile sulla pagina richiesta: es. <?php echo stripslashes($row_nomerecordset['variabile']); ?>

    ciao grazie comunque.
    Allora il problema era un'altro perchè
    stripslashes = Rimuove i backslash da una stringa. (&#92;' diventa ' e così via.) I doppi backslash (\\) sono ridotti ad un singolo backslash (\).

  5. #5

    non del tutto

    se leggi bene alla fine del mio primo post, scrivo che mi modificava l'apostrofo, mi tagliava il testo se inseriva le virgolette e le lettere accentate li faceva diventare quadratini.
    inserendo stripslashes tutto funziona alla perfezione.

  6. #6

    dimenticavo

    anche se nel database le lettere sono convertite.
    ma misteri...
    non sono un gran webmaster..

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.