Моя главная проблема прямо сейчас в том, что я не могу отображать «ä, ü, ö» на моей веб-странице, отображаться как , когда я показываю свой сценарий с «эхом», они кажутся нормальными , когда я запускаю его из моей html-страницы, я получаю .Невозможно отобразить немецкий umlaut
После того как я попробовал несколько вещей, которые я прочитал по этой теме, я не смог найти решение моей проблемы.
Я читаю файл .xls с .xls в php reader. Я получаю данные из таких полей:
function getMenueMonday($connection) {
$menu = "";
$startrow = 8;
$endrow = 16;
$col1 = 3;
for ($i = $startrow; $i < $endrow; $i++) {
$menu .= $connection->sheets[0]["cells"][$i][$col1] . "<br>";
}
return $menu; }
Это работает отлично. Затем я сохраняю все эти возвращаемые значения в массиве. Я запишу их, чтобы сохранить их в базе данных mysql.
for ($i = 0; $i < 5; $i++) {
insertMenue(changeAttr($menues[$i]), $days[$i]);
}
метод я использую, чтобы изменить буквы выглядит следующим образом:
function changeAttr($content) {
$search = array("ä", "ö", "ü", "ß", "Ä", "Ö", "Ü");
$replace = array("ä", "ö", "ü", "ss", "Ä", "Ö", "Ü");
$contentrep = str_replace($search, $replace, $content);
return $contentrep;
}
В таблице моей базе данных, они до сих пор спасаются как «ö, ü». Таблица сама по себе находится в utf8_bin. Я попробовал это в заголовке HTML-файла:
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<html lang="de">
, а также это в файле я использую, чтобы прочитать дб.
header('Content-Type: text/html; charset=utf-8');
С помощью следующего кода я получаю этот выход:
foreach($menues as $r){
echo urlencode($r);
}
"Saisonfr% FCchte", где он должен быть "Saisonfrüchte".
Есть ли точка, где я пропускаю кодировку или что-то особенно не так?
Спасибо! Просто 'array (PDO :: MYSQL_ATTR_INIT_COMMAND =>" SET NAMES utf8 ")' в файле подключения отлично работает! –
'PDO: $ db = new PDO ('dblib: host = host; dbname = db; charset = UTF-8', $ user, $ pwd); ' –