Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129

    Problema con caratteri mysql in database

    Salve,

    Ho un problema che non riesco a risolvere.

    Sto traducendo un sito in spagnolo e ho problemi con la “collation” dei caratteri spagnoli nel salvarli in database. (ñ, Ñ, á, ó, é, í) In poche parole mi salva questi caratteri male.

    Giá ho fatto un sistema simile altre volte e sempre mi ha funzionato bene, però nel database dove sto programmando non funziona e non trovo soluzione.

    Io uso nel head del file in questione:
    codice:
    <meta http-equiv="Content-Type" content="text/html; charset= UTF-8">
    E il codice php per salvare i dati del formulario in database:

    codice:
    $nombre = stripslashes($_POST['nombre']);
    $apellidos = stripslashes($_POST['apellidos']);
    $direccion = stripslashes($_POST['direccion']);
    $email = stripslashes($_POST['email']);
    $telefono = stripslashes($_POST['telefono']);
    $movil = stripslashes($_POST['movil']);
    $codigop = stripslashes($_POST['codigop']);
    $provincia = stripslashes($_POST['provincia']);
    $ciudad = stripslashes($_POST['ciudad']);
    $centro = stripslashes($_POST['centro']);
    $consulta = stripslashes($_POST['consulta']);
    	
    $sqlQuery = "INSERT INTO contacto (id,nombre,apellidos,direccion,email,telefono,movil,codigop,provincia,ciudad,centro,consulta,fecha,ora)";
    
    $sqlQuery .= "VALUES(NULL,'$nombre','$apellidos','$direccion','$email','$telefono','$movil','$codigop','$provincia','$ciudad','$centro','$consulta',now(),now())";
    	
    	$res = mysql_query($sqlQuery);
    	$last_id = mysql_insert_id();
    Nel database ho come collation nelle tabelle e nella base di dati:
    codice:
    utf-8_spanish_ci


    No mi sembra aver fatto nessun errore... sempre mi ha funzionato!

    Una cosa strana é che se uso nel head
    codice:
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
    i dati si salvano bene in database peró poi il problema c’è l’ho in tutti i testi del sito e le mail che invio.

    C’è una soluzione a questo?

    Per esempio nella query in php si puó settare il charset o la collation in modo che solo per per il database sia iso-8859-1?

    Ho altre soluzioni migliori?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Ciao,
    tempo fa ho avuto un problema simile con le lettere accentate ed ho risolto
    mettendo
    codice:
    meta http-equiv="Content-Type" content="text/html; charset= UTF-8">
    ed usando la funzione utf8_decode()

    Provaci e fammi sapere.
    Magari risolvi in questo modo.
    "To iterate is human, to recurse, divine." (R.(Heller))

  3. #3
    La soluzione migliore a lungo termine è trasformare i termini accentati nella loro entità Html e lasciarla così nel database, in questo modo quando poi la devi stampare a video non devi ri-trasformare da entità ad altro, lasci l'entità che in html (il nostro probabile output finale) mostrerà il carattere corretto.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    grazie the-bit,

    infine ho provato con
    codice:
    utf8_decode()
    e mi funziona perfettamente...


    Grazie anche a goikiu, ugualmente non andrebbe bene come soluzione perchè sono delle form aprete, quindi non sono delle variabili fisse. Per questo non posso fissare i caratteri se non con un sistema di programmazione che risulterebbe piú complesso di quello che volevo...

    Grazie ancora.

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.