Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    database e problema collation

    Salve a tutti ecco il mio problema:
    ho creato un DB con collation utf8_general_ci, le varie TABLE in automatico hanno specificato come collation latin1_swedish_ci.

    da un form ricevo dei dati che prima di essere registarti nel DB vengono trattati dalla funzione htmlentities(), nonostante questo le lettere accentate vengono tradotte in caratteri differenti e agli apostrofi vengono posti gli escape\.

    cercando su internet mi è sembrato di capire che il problema risieda nel fatto che i dati inseriti da un utente sono in ASCII, per cui ho provato anche ad inserire nella pulizie delle stringhe da parte dell'utente anche la funzione utf8_encode(), ma non sembra funzionare.

    qualcuno sa darmi qualche suggerimento per risolvere il problema?

    grazie mille

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Devi decidere che charset usare ed usarlo ovunque, se usi charset diversi in posti diversi avrai ovviamente problemi.

    Ti consiglio di usare UTF8 ovunque, dovresti quindi specificarlo nelle pagine php e html, devi specificarlo subito dopo la connessione al database con la funzione set_charset(), nella collation del db e delle singole tabelle.
    Così facendo non dovresti più aver problemi.

  3. #3
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Uhm ....

    htmlentities e' in grado di gestire anche l'encoding della stringa

    http://php.net/manual/en/function.htmlentities.php

    Quindi ti conviene piuttosto fare una cosa del tipo

    - test con htmlentities($stringa,ENT_QUOTES,"utf-8") ;

    - inserire il charset per i dati che devi spedire eseguendo la query per impostare le interrogazioni
    http://dev.mysql.com/doc/refman/5.0/...onnection.html

    esempio mysql_query("SET NAMES 'utf8' ");

    - mal che vada prima di tutto
    codice:
    $stringa = utf8_encode($stringa);
    mysql_query("SET NAMES 'utf8' ");   
    
    EDIT : Cmq just in case dai un occhio qui 
    
    // ESEGUI INSERT OR UPDATE
    http://php.net/manual/en/function.mysql-set-charset.php

  4. #4
    grazie mille, stasera faccio le varie prove e domani vi dico tutto...

  5. #5
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Ottimo facci sapere

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.