alekciy
Новичок
В какой кодировке обрабатываются строки в скрипте по умолчанию?
Ситуация такая. PHP V5.1.6 на Apache 2.0.52 (качался с англ. офсайта). Опыт проводился на ОС Win XP Pro SP2 и Win2003 Serv.
Имется страница в UTF-8 кодировке на которое есть форма. Файл создан в блокноте в UTF-8, в meta теге страницы так же указано UTF-8. Страница является XHTML с явно прописанным DOCTYPE. Отображается корректно, код валидный ибо проверен был на W3C.
После submit формы вызываем серверный скрипт который опять же записан как UTF-8, он генерирует UTF-8 XHTML разметку, сервер отправляет корректные заголовки об этом. Теперь там естьтакая строка:
Первая строка выводиться нормально, т.е. что было там введено,то и видно. Ввел я "Иванов" Иванова и вижу. А вот сторая строка выдает кракозябры! И ни как не могу разобраться, как заставить обрабатывать $_POST['name'] как UTF-8 и UTF-8 же что бы возращалось.
Сейчас приходиться извращаться:
Я так понимаю, что возможно дело в региональных настройках? Перерыл php.ini, но пока ни как не найду что же там можно изменить, что бы все работало без таких вот танцев с бубном.
Ситуация такая. PHP V5.1.6 на Apache 2.0.52 (качался с англ. офсайта). Опыт проводился на ОС Win XP Pro SP2 и Win2003 Serv.
Имется страница в UTF-8 кодировке на которое есть форма. Файл создан в блокноте в UTF-8, в meta теге страницы так же указано UTF-8. Страница является XHTML с явно прописанным DOCTYPE. Отображается корректно, код валидный ибо проверен был на W3C.
После submit формы вызываем серверный скрипт который опять же записан как UTF-8, он генерирует UTF-8 XHTML разметку, сервер отправляет корректные заголовки об этом. Теперь там естьтакая строка:
PHP:
...
echo $_POST['name'];
echo substr($_POST['name'],0,1);
...
Сейчас приходиться извращаться:
PHP:
...
echo $_POST['name'];
$_POST['name'] = iconv("UTF-8","Windows-1251",$_POST['name']);
$_POST['name'] = substr($_POST['name'],0,1);
$_POST['name'] = iconv("Windows-1251","UTF-8",$_POST['name']);
echo $_POST['name'] ;
...