2012-12-28 17 views
11

Eventuali duplicati:
UTF-8 all the way throughPHP problemi mysql charset utf8

sto sviluppando alcune nuove funzionalità su un sito web che qualcun altro già sviluppato.

Sto riscontrando un problema con il set di caratteri.

ho visto che il database ha avuto alcune tabelle in utf8 e alcuni in latin1

Così sto cercando di convertire tutti i tavoli in UTF8.

L'ho fatto per un tavolo (anche i campi di questo tavolo ora sono utf8), ma non ha avuto successo.

Sto usando la normale connessione mysql. Devo mettere qualche configurazione per dire che deve connettersi con utf8 al DB? Se sì, strega?

Nel mio html ho:

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

Sembra che alcune lettere lavori e gli altri visualizzano il punto interrogativo. Ad esempio, non in grado di visualizzare cio 'che è diverso di questo:'

+0

Quali caratteri vengono visualizzati come punto di domanda nel DB ? –

+0

non impazzire. Quindi controlla di nuovo la tua domanda, modificala e fai effettivamente una domanda. * "Sembra che alcune lettere funzionino e altre mostrino il punto interrogativo." * - Queste frasi non sono d'aiuto. Scommetto che anche loro non sono d'aiuto. – hakre

+0

Inoltre contatta la persona da cui hai ricevuto il codice per la documentazione. Cerca anche la tua domanda. Per esempio. la parte relativa alla configurazione dei caratteri di mysql è stata chiesta e ha risposto in precedenza - non è necessario chiedere di nuovo, è sufficiente cercare. Per esempio. [Se utilizzare "SET NAMES"] (http://stackoverflow.com/q/1650591/367456) e [SET NAMES utf8 in MySQL?] (Http://stackoverflow.com/q/2159434/367456). – hakre

risposta

29

Prova questo

<?php 

    header('Content-Type: text/html; charset=utf-8'); 
?> 

e poi nella connessione

<?php 
$dbLink = mysql_connect($argHost, $argUsername, $argPassword); 
    mysql_query("SET character_set_results=utf8", $dbLink); 
    mb_language('uni'); 
    mb_internal_encoding('UTF-8'); 
    mysql_select_db($argDB, $dbLink); 
    mysql_query("set names 'utf8'",$dbLink); 
?> 
+0

L'ho fatto e ho anche dovuto rimuovere tutte le funzioni htmlentities() e utf8_encode() utilizzate. Grazie – Samuele

Problemi correlati