Я получил базу данных, которая содержит буквы с акцентом (например, «é» и т. Д.) В нескольких полях. Если я отображаю их на своих страницах, они отображаются правильно, потому что я использую этот html-тег при отображении моего html:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
Но когда я хочу отобразить значение из параметра из моего URL с помощью $ _GET, это не сработает.
Я использую этот код:
$fname = $_GET['fname'];
Фактический вывод:
groté
Желаемый результат:
Groté
Кодировка выглядит хорошо для меня, я проверил это с помощью этого кода:
var_dump($fname);
var_dump(iconv_get_encoding('all'));
Выход:
string(6) "groté"array(3) { ["input_encoding"]=> string(10) "ISO-8859-1" ["output_encoding"]=> string(10) "ISO-8859-1" ["internal_encoding"]=> string(10) "ISO-8859-1" }
Я не использую код, где я устанавливаю кодировку в php. Я использую только метатег, как отмечено выше.
Что не так с моим кодом?
ОК, после дальнейшего расследования я нашел решение!
$fnameraw = $_GET['fname'];
$fname = utf8_decode($fnameraw);
Теперь я получил правильный вывод: Groté!
При использовании charset = ISO-8859-1 в моем метатеге. Оба вывода базы данных в качестве вывода из URL отображаются правильно.
Других решений пока нет …