2012-12-28 23 views
11

Powiel możliwe:
UTF-8 all the way throughPHP mysql problemy charset utf8

Zajmuję się kilka nowych funkcji na stronie internetowej, że ktoś inny już rozwiniętych.

Mam problem z zestawem znaków.

Widziałem, że baza danych miał kilka tabel w utf8, a niektóre w latin1

Więc próbuję przekonwertować wszystkie tabele w UTF-8.

Zrobiłem to dla jednej tabeli (również pola tej tabeli są teraz utf8), ale nie powiodło się.

Używam normalnego połączenia mysql. Muszę umieścić dowolną konfigurację, aby powiedzieć, że musi połączyć się z utf8 do DB? Jeśli tak, to czarownica?

W moim html mam:

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

Wygląda jak niektóre litery działa i inni wyświetla znak zapytania. Na przykład nie stanie wyświetlić tego „który jest inny od tego:”

+0

Jakie znaki są wyświetlane jako znak zapytania w DB ? –

+0

Nie zwariuj. Sprawdź ponownie swoje pytanie, edytuj je i zadaj pytanie. * "Wygląda na to, że niektóre litery działają, a inne wyświetlają znak zapytania." * - takie zdania nie są po prostu pomocne. Założę się, że oni też nie są pomocni. – hakre

+0

Skontaktuj się również z osobą, z którą otrzymałeś kod, aby uzyskać dokumentację. Wyszukaj również swoje pytanie. Na przykład. część o konfiguracji znaków mysql została już zadana i odpowiedziano na nią wcześniej - nie musisz pytać ponownie, możesz po prostu przeszukać. Na przykład. [Czy używać "SET NAMES"] (http://stackoverflow.com/q/1650591/367456) i [SET NAMES utf8 w MySQL?] (Http://stackoverflow.com/q/2159434/367456). – hakre

Odpowiedz

29

Spróbuj

<?php 

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

a następnie w związku

<?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

Zrobiłem to i musiałem również usunąć wszystkie używane funkcje htmlentities() i utf8_encode(). Dzięki – Samuele