Диакритические знаки из базы данных mysql не отображаются правильно со страницей HTML и PHP - PullRequest
0 голосов
/ 10 августа 2011

У меня есть база данных mysql (Wamp), которая использует latin1_swedish для кодирования символов (é, è, ...), но по неизвестной причине, когда я отображаю некоторые результаты из базы данных (используя страницу HTML и страницу PHP), диакритические знаки (à, é, è) отображаются неправильно.

Я уже пытался изменить кодировку моей веб-страницы (iso 88599-1, utf-8), но она не работает.

Ответы [ 4 ]

2 голосов
/ 12 августа 2011

эхо htmlentities ($ variable_name);

0 голосов
/ 10 августа 2011

Попробуйте проверить кодировку ваших файлов (вы можете сделать это с помощью notapad ++), в вашей базе данных (вы можете увидеть это в phpmyadmin) и ваше соединение с базой данных (вы можете проверить это в своем php-файле, который подключается к базе данных ).

Все они должны совпадать

0 голосов
/ 10 августа 2011

Если вам известна входящая кодировка символов и вы знаете, что выходит, вы можете использовать iconv: http://www.php.net/manual/en/function.iconv.php

Например, если db iso-8859 и вам нужен utf-8, вы звоните

iconv("ISO-8859-1", "UTF-8", $text);

Вы не можете просто изменить набор символов таблицы после сохранения значений, потому что данные не будут преобразованы. Вам придется конвертировать данные, используя доступные функции MySQL. Подробнее об этом читайте на http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html.

0 голосов
/ 10 августа 2011

Вы установили соединение с mysql db с помощью команды

SET NAMES utf8;

?

Существует несколько способов:

mysql_query("SET NAMES 'utf8'");

и

mysql_query("SET CHARACTER SET utf8 ");

Или «лучший»;

$link = mysql_connect('localhost', 'user', 'password');
mysql_set_charset('utf8',$link);
...