Символы MySQL / Accented, приводящие к возвращению непригодных данных

Вот мой код …

$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
mysql_set_charset('utf8');
$sql = "SELECT product_name FROM my_table";
$result = mysqli_query($mysqli, $sql) or trigger_error(mysql_error());
while($row = mysqli_fetch_assoc($result)) {
foreach($row  as $key => $value) {
//here, $value is populated but may contain a bad character
$value = replaceAccents($value);
//here, $value is now empty if it contained a bad character
}
}

Я создал все свои таблицы с …

DEFAULT CHARSET=utf8

…и я также позвонил …

ALTER DATABASE my_database CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Большая часть данных возвращается из таблицы в порядке, но если какое-либо поле содержит символ с акцентом (например, Crème) затем возвращается неиспользуемое значение.

Я не видел подобной проблемы — только смутно похожие проблемы, которые привели к реализации вышеуказанного кода / изменений.

Что не так и как исправить ??

Кстати, если я сделаю выше sql искать в phpmyadmin, проблемное значение (содержащее Crème) отображается нормально.

Для полноты, вот моя функция replaceAccents …

function replaceAccents($str) {

$str = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $str);

return $str;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]