Проблема кодирования в PHP и IIS 6
Сервер работает под управлением Windows 2003 с IIS 6.0.3790.1830 x86 (iis.dll). Мой сервер базы данных - Microsoft SQL Server 2000. Моя версия PHP - 5.3.
Оригинальное приложение размещено на appserv1
и это база данных включена dbserv1
, Работает нормально, все настроено, работает отлично.
Необходимо было разместить одно и то же приложение (разные модули) на другом сервере для других целей, поэтому я скопировал базу данных на dbserv2
, настроенный appserv2
разместить приложение, поэтому я получил 2 практически идентичные копии. И то и другое dbserv1
а также dbserv2
использовать одну и ту же кодировку, оба appserv1
а также appserv2
находятся на IIS6 с теми же конфигурациями PHP. Я также старался изо всех сил иметь те же настройки в IIS. Я также удостоверился, что передаю информацию о кодировке как в заголовках HTTP, так и в метатегах с помощью http-эквивалент. Оба приложения используют utf-8.
Проблема заключается в том, что копия приложения не отображает символы, не входящие в ASCII, обычно в браузере, даже если браузер правильно определяет кодировку страницы в кодировке UTF-8. Сначала я подумал, что это проблема с базой данных, учитывая тот факт, что MSSQL 2000 не поддерживает UTF-8, а вместо этого использует UCS-2, но когда я перенаправил приложение на appserv2
работать с базой данных на dbserv1
, у него были те же проблемы кодирования.
Вот почему я спрашиваю, как я могу заставить это работать.
Спасибо за чтение.
1 ответ
Спасибо, ребята, я понял это (попробовав все, что мог). Проблема была в региональных настройках сервера, кодовой странице, используемой для не-Unicode-программ (чёрт, я думал, что сервер работает с байтовыми потоками, и они преобразуются в символы на стороне клиента, но, похоже, это ещё не всё),