Я здесь новичок, поэтому прошу прощения, если делаю что-то не так.
У меня есть форма, которая отправляет пользовательский ввод на другую страницу. Ожидается, что пользователь введет ä, ö, é и т.д.... Я разместил в документе все следующее:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
header('Content-Type:text/html; charset=UTF-8');
<form action="whatever.php" accept-charset="UTF-8">
Я даже пробовал:
ini_set('default_charset', 'UTF-8');
Когда загружается другая страница, мне нужно проверить, что ввел пользователь с помощью чего-то вроде:
if ( $_POST['field'] == $check ) {
...
}
Но если он введет что-то вроде 'München', PHP сравнит 'München' с 'München' и никогда не выдаст TRUE, хотя должен. Поскольку везде указано UTF-8, я предполагаю, что сервер конвертирует в что-то другое (Windows-1252, как я читал в другой теме), потому что он не поддерживает или не настроен на UTF-8. Я использую Apache на локальном сервере до загрузки в продакшн; я не менял (и не знаю, как это сделать) никаких настроек по умолчанию. Я работаю на Windows 7, редактирую с помощью Notepad++, кодируя свои файлы в ANSI. Если я bin2hex('München')
, я получаю '4dc3bc6e6368656e'.
Если я echo $_POST['field'];
, то отображается 'München' правильно.
Я везде искал объяснение, все, что я нашел, это то, что я должен включить те теги/заголовки, которые у меня уже есть.
Любая помощь будет очень признательна.