У меня есть текст в базе данных. Я использую французский и английский. У французов есть акценты, а некоторые специальные символы, такие как ç
. Я использую Mamp, MySQL и PHP.Сохранение и вывод текста с акцентами
У меня есть сортировка latin1_swedish-ci
(по умолчанию). Я пробовал utf8_general_ci
, и результат тот же. Если я использую на странице html, у меня это в голове: <meta charset="UTF-8">
Например, в базе данных у меня есть «вуаля».
Когда эхо текст из базы данных в HTML:
$con = mysqli_connect("localhost","root","root");
if (!$con) {
die('The connexion failed: ' . mysqli_error());
}
if (!mysqli_select_db($con, 'prova')){
echo "Connection with database was not possible";
}
$result = mysqli_query($con, "SELECT * FROM test1
WHERE id='1' ")
or die(mysqli_error());
while($row = mysqli_fetch_array($result)) {
$text = $row['first'];
echo $text; //I see: voil�
echo htmlentities($text); //I see nothing
echo utf8_encode($text); //This works: I see voilà
}
- Почему
htmlentities
не работает? - Есть
utf8_encode();
путь? Я должен использовать это всегда, когда я выводю что-то из базы данных? Почему я должен использовать это, если сортировка ужеUTF8
? Есть ли лучший способ хранить и выводить текст с акцентами в базе данных MySQL?
Возможной дубликаты [Получение специальных символов из базы данных MySQL с PHP] (http://stackoverflow.com/questions/15892610/getting-special-characters-out-of-a-mysql-database-with-php) – ItsGreg
@ItsGreg. другой не отвечает на мои вопросы. Я пришел к аналогичному решению, но вопрос в том, почему – Nrc
'htmlentities()' не должен возвращать ничего, если ваша строка 'voilà'. Как выглядит поле в phpMyAdmin? – rybo111