2017-02-21 36 views
0

Эй, я получаю текст с латинскими символами, такими как «-» из базы данных mysql. Это соединение вместе с запросом я использую, чтобы получить данные, помещая его в массиве:Латинские символы, не работающие в html5, используя UTF-8

<?php 
    header('Content-Type: text/html; charset=UTF-8'); 
    $con=new mysqli ("localhost","root","","chroniclemark"); 

    $sqlget = "SELECT descricao FROM items;"; 
    $sqldata = mysqli_query($con,$sqlget) or die ('error getting database'); 
    while ($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)) { 
     $lol5[] = $row['descricao'] ; 
    }?> 

Я затем пытаюсь отобразить текст вне <?php ?> заявления вроде так:

<p ><?php echo $lol5[0]; ?></p> 

Весь текст в порядке, за исключением «ç», «ó», «ã» и т. Д. У меня также есть метатег <meta charset="UTF-8"> в моем заголовке, но он не помогает. В базе данных данных установлено значение "utf8mb4_unicode_ci". Что я могу сделать, чтобы исправить это? Есть идеи?

+0

проходят UTF-8 в «связи» в первую очередь. Работает 9 раз из 10. –

+0

@Fred -ii Эй, как вы делаете Фред, что вы имеете в виду с пропуском? –

+0

Отлично, спасибо Mark; надеюсь, то же самое для вас. Взгляните на http://stackoverflow.com/questions/279170/utf-8-all-the-way-through есть примеры и дополнительная информация для чтения. –

ответ

2

@Fred -ii Спасибо за то, что указали мне в правильном направлении в комментариях. Все, что я должен был сделать с помощью mysqli_set_charset($con, 'utf8mb4');, прежде чем сделать запрос

$sqlget = "SELECT descricao FROM items;"; 
$sqldata = mysqli_query($con,$sqlget) or die ('error getting database'); 

Это все хорошо сейчас :)