Некоторые буквы перемешиваются при выводе в HTML
Характер é
отображается как вопросительный знак в Chrome. Я использую PHP для получения содержимого из MySQL для вывода в HTML. Я пытался с помощью mb_detect_encoding()
Чтобы определить кодировку содержимого, некоторые из них являются ASCII, а некоторые - UTF-8. Почему у них разные кодировки? MySQL делает их другими или PHP делает это?
Содержание, содержащее é
кодируется как UTF-8. Но если я использую utf8_encode()
на содержании персонаж отображается правильно. Если это уже UTF-8, зачем использовать utf8_encode()
заставить его отображаться правильно?
2 ответа
Вы можете избежать строки, используя htmlentities()
Функция PHP, так что символы заменяются соответствующими HTML-объектами, например, è изменяется на è
независимо от того, указали ли вы тип кодировки.
Вы должны определить соединение с вашей БД как utf8:
// Setup your connection
$connection = mysql_connect('localhost', 'user', 'pw');
mysql_select_db('yourdb', $connection);
mysql_query("SET NAMES 'utf8'", $connection);
// now you get utf-8 encoded stuff
$query = sprintf('SELECT name FROM place where id = 1');
$result = mysql_query($query, $connection);
$result = mysql_fetch_assoc($result);