Загадка про кодировки
Модераторы: SLEDopit, Модераторы разделов
-
- Бывший модератор
- Сообщения: 2088
- Статус: Насильник бабушек-педофилок
- ОС: Windows 10
Загадка про кодировки
В общем, расклад такой. имеется "админка" - веб-интерфейс, где вбивается в хтмл-кодах реклама. есть груда сайтов, на которых посредством пхп эта реклама впихивается на страницу. все было замечательно, пока я не наткнулся на сайт в UTF8. а админа - в 1251. собственно, вопрос: а что делать-то? ПХП стоит пятый, есть информация, что он это умеет, но внятной инфы пока не нашел...
Хрю.
-
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Загадка про кодировки
Вариант 1:
1. Узнать нужный charset:
1.1. Для каждого сервера сохранять какой нужен charset.
1.2. Заставить посылать правильный Accept-Charset при запросе.
1.3. Что-нибудь ещё, чтобы узнать необходимую кодировку.
2. Выдавая контент, учитывать кодировку. То есть перекодировать, при помощи iconv, например.
Вариант 2:
1. Заставить того, кто вставляет рекламу перекодировать:
1.1. С использованием iconv.
1.2. Самописная функция, перекодирующая cp1251 в utf8.
1. Узнать нужный charset:
1.1. Для каждого сервера сохранять какой нужен charset.
1.2. Заставить посылать правильный Accept-Charset при запросе.
1.3. Что-нибудь ещё, чтобы узнать необходимую кодировку.
2. Выдавая контент, учитывать кодировку. То есть перекодировать, при помощи iconv, например.
Вариант 2:
1. Заставить того, кто вставляет рекламу перекодировать:
1.1. С использованием iconv.
1.2. Самописная функция, перекодирующая cp1251 в utf8.
-
- Бывший модератор
- Сообщения: 2088
- Статус: Насильник бабушек-педофилок
- ОС: Windows 10
Re: Загадка про кодировки
админка писана не мной и является неприкасаемой вещью. поддержки перекодирования не имеет, либо я не нашел. пробовал сконвертить текст в утф8 и вставить в админку - так она, собака, автоматом в 1251 перекодирует.
вот насчет 1.2 - если можно, поподробней. в идеале - для пхп.
вот насчет 1.2 - если можно, поподробней. в идеале - для пхп.
Хрю.
-
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Загадка про кодировки
Topper писал(а): ↑02.06.2006 23:47админка писана не мной и является неприкасаемой вещью. поддержки перекодирования не имеет, либо я не нашел. пробовал сконвертить текст в утф8 и вставить в админку - так она, собака, автоматом в 1251 перекодирует.
вот насчет 1.2 - если можно, поподробней. в идеале - для пхп.
Ok.
В HTTP-протоколе предусматривается такой заголовок, как Accept-Charset, в котором должна указываться кодировка, в которой хотелось бы получить данные.
Далее, в скрипте, который отдаёт рекламу, в начале добавляем, например, такие строчки:
Код: Выделить всё
// Выделяем первую кодировку из Accept-Charset, если нет, то cp1251 {{{
if (preg_match("/^([-A-Za-z0-9]+)/", $_SERVER['HTTP_ACCEPT_CHARSET'], $matches)) {
$charset = $matches[1];
} else {
$charset = "cp1251";
}
// }}}
unset($matches);
// Установка кодировок для iconv'а {{{
iconv_set_encoding("internal_encoding", "cp1251");
iconv_set_encoding("output_encoding", $charset);
// }}}
unset($charset);
ob_start("ob_iconv_handler");
Это при условии поддежки iconv.
Естественно, в ob_start можно впихнуть свой callback.
Далее, задача сводится к более простой -- заставить присылать клиентов этот самый Accept-Charset.
-
- Бывший модератор
- Сообщения: 2088
- Статус: Насильник бабушек-педофилок
- ОС: Windows 10
Re: Загадка про кодировки
ых
говорю же, не могу я править скрипты, отдающие рекламу. надо бы что-нить пхпешное, чтобы на конкретном сайте (поскольку такая проблема только с одним из более чем 25 сайтов) производить перекодировку...
говорю же, не могу я править скрипты, отдающие рекламу. надо бы что-нить пхпешное, чтобы на конкретном сайте (поскольку такая проблема только с одним из более чем 25 сайтов) производить перекодировку...
Хрю.
-
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус