Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: accenti in mysql

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417

    accenti in mysql

    Ho un problema:

    ho tre tabelle regioni province comuni, tutto funziona correttamente ma dove vi sono caricati dei comuni che hanno lettere accentate come Emarèse o Prè-Saint-Didier mi si blocca tutto e mi dà molti errori come posso sitemare la cosa?

    nella pagina ho messo la codifica charset=iso-8859-1 e provato anche charset=utf-8 nel DB codifica utf8_general_ci e tipo MyISAM.

    cosa posso fare per far funzionare tutto correttamente?
    Grazie Luigi

  2. #2
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    In che senso si blocca tutto? che errori ti da?

    UTF8-general-ci dovrebbe andare bene, poi metti anche nell'html il seguente meta

    codice:
    <meta http-equiv="Content-Type" content="text/html ; charset=UTF-8" />
    Errare humanum est, perseverare ovest

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    in effetti ho messo il meta che mi indichi ma non funziona.

    il problema è questo:

    sul DB vi sono dei comuni con l'accento o in finale o in mezzo alla parola,
    quando selezione la ricerca nel primo select regioni tutto ok leseziono la regione,
    nel secondo appaiono le province di quella regione e anche qui ok?
    nel terzo select nei comuni di quella provincia se vi sono dei comuni accentati spariche in paerte la pagina e mi dà un elenco sballato dei comuni inserendo al posto della lettera accentata un ? seguito da un numero e non mi lasca fare altro

    ti allego un link che ho fatto di prova

    http://www.autoadesive.com/registrazione.php

    se selezioni piemonte - novara noterai che funziona tutto correttamente malgrado che in mezzo ci sia un comune con l'apostrofo

    ma se selezioni valle d'aosta - aosta ti spariche anche il bottone invio e nell'elenco dei comuni ci sono diversi comuni che al posto dell'accento vi è ? e numero

    sono giorni che provo di tutto ma non riesco a venirne a capo

    grazie Luigi

  4. #4
    prova cosi:
    nel db metti latin1-general-ci
    nella pagina web metti charset='iso-8859-1'

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    ho provato anche quello il risultato è sempre lo stesso

  6. #6

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    e come lo uso?
    io ricavo così:
    $pid = (int)$_REQUEST['id'];
    //maschera eventuali caratteri speciali in table
    $tb = mysql_real_escape_string($_REQUEST['table'], $conn);

    switch($tb) {
    case 'regioni':
    $sql="SELECT id, regione FROM $tb ORDER BY regione";
    break;
    case 'province':
    $sql="SELECT id, provincia FROM $tb WHERE id_regione=$pid ORDER BY provincia";
    break;
    case 'comuni':
    $sql="SELECT id, comune FROM $tb WHERE id_provincia=$pid ORDER BY comune";
    break;
    }
    //Il primo elemento della risposta è il nome della tabella (= attributo ID del tag select)
    $out="$tb;";
    if($result = mysql_query($sql, $conn)) {
    while ($row = mysql_fetch_row($result)) {
    $out .= $row[0] . '|' . $row[1] . ';';
    }
    }
    //Rimuove il carattere ; in coda
    echo rtrim($out, ';');

  8. #8
    htmlentities($row[1])

    puoi pure specificare la codifica htmlentities($row[1],'UTF-8')

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    ok fino qui molto bene, non si blocca più niente.
    ho messo come suggerito
    htmlentities($row[1])
    adesso unico problema e che nell'elenco dei comuni appare tutto ma es: il comune Prè-Saint-Didier appare Pr$egrave e nient'altro.
    purtroppo sono costretto ad inserire
    echo rtrim($out, ';');
    altrimenti non mi fà l'elenco

    spero tu abbia una soluzione anche per questom sei molto in gamba

    grazie Luigi

  10. #10
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    usa la funzione html_entity_decode() quando stampi l'output

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.