- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.google.ru");
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: text/xml;charset=\"utf-8\""));
curl_setopt($ch, CURLOPT_HEADER, true);
curl_exec($ch);
curl_close($ch);
?>
Запрашиваю скриптом со своего компа главную страницу гугла. Страницу выдает, но на экране абракадабра. Посмотрел заголовок, что присылает гугл. В заголовке кодировка win-1251. у меня на странице скрипта utf-8. ГДе ошибка, почему гугл присылает в такой кодировке, в какой присылает?
Вы ему не посылаете заголовок Accept-Charset … вот он и творит, что хочет.
;9826957']Вы ему не посылаете заголовок Accept-Charset … вот он и творит, что хочет.
То есть, браузер при запросе отсылает заголовок, а мой скрипт не отсылает получается? и гугл по-умолчанию шлет win-1251?
То есть, браузер при запросе отсылает заголовок, а мой скрипт не отсылает получается? и гугл по-умолчанию шлет win-1251?
Лично у меня браузер не шлёт.
Браузер просто берёт и отображает контент в той кодировке, в которой его возвращает гугл.
По-скольку на вашем сайте не может использоваться кодировка, возвращаемая гуглом по-умолчанию, вам нужно либо указывать нужную кодировку в запросе, либо перекодировать получаемый контент.
;9826992']Лично у меня браузер не шлёт.
Браузер просто берёт и отображает контент в той кодировке, в которой его возвращает гугл.
По-скольку на вашем сайте не может использоваться кодировка, возвращаемая гуглом по-умолчанию, вам нужно либо указывать нужную кодировку в запросе, либо перекодировать получаемый контент.
Скрипт у меня на локальном хосте (на локальном сайте). А почему не может использоваться кодировка, отображаемая гуглом? Скрипт делает запрос, а потом выводит страницу в браузер. Не понимаю, почему он также не выводит страницу гугла в браузер, как если бы я ее в самом браузере набрал.
Скрипт у меня на локальном хосте (на локальном сайте). А почему не может использоваться кодировка, отображаемая гуглом? Скрипт делает запрос, а потом выводит страницу в браузер. Не понимаю, почему он также не выводит страницу гугла в браузер, как если бы я ее в самом браузере набрал.
Помимо контента (кода страницы) есть ещё и http-заголовки.
Curl-ом вы получаете только тело страницы.
Если у вас скрипт работает в кодировке utf-8, и при этом отдаёт код страницы в кодировке cp1251, то в браузере получается абракадабра.
сбросьте в файл запрос, и посмотрети нет ли там указания чарсета.
И еще проверьте заодно строку запроса, там тоже может быть указан чарсет.
Далее, в user_agent может быть отправляется *win32*, вот он и выдает тот чарсет, что подходит больше всего.
;9827062']Помимо контента (кода страницы) есть ещё и http-заголовки.
Curl-ом вы получаете только тело страницы.
Если у вас скрипт работает в кодировке utf-8, и при этом отдаёт код страницы в кодировке cp1251, то в браузере получается абракадабра.
Скрипт у меня находится на страничке с кодировкой utf-8. А значит браузеру он отдает в кодировке cp1251. А как он решил, что отдавать надо в ней? а гугл ему в какой кодировке присылает, как узнать?
---------- Добавлено в 21:51 ---------- Предыдущее сообщение было в 21:49 ----------
сбросьте в файл запрос, и посмотрети нет ли там указания чарсета.
И еще проверьте заодно строку запроса, там тоже может быть указан чарсет.
Далее, в user_agent может быть отправляется *win32*, вот он и выдает тот чарсет, что подходит больше всего.
Буду признателен, если вы намекнете - как сбросить запрос в файл. То есть, вы подозреваете, что при запросе указывается кодировка для ответа и гугл в ней и выдает.
Скрипт у меня находится на страничке с кодировкой utf-8. Значит он браузеру отдает в кодировке cp1251. А как он решил, что отдавать надо в ней? а гугл ему в какой кодировке присылает, как узнать?
Если в конфиге виртуального хоста, на котором работает скрипт, кодировка по-умолчанию utf-8, то этот скрипт каждый раз сообщает вашему браузеру, что информация выдаётся в utf-8.
Из гугла скрипт получает инфу в cp1251, а браузеру он говорит, что инфа в utf-8.
Браузер показывает вам инфу в кодировке utf-8, хотя на самом деле она в cp1251.
Вам нужно либо:
1. Изменить кодировку виртуального хоста
2. Запрашивать у гугла инфу в нужной вам кодировке
3. Перекодировать инфу из кодировки, полученной в ответном заголовке гугла, в кодировку виртуального хоста.
;9827085']Если в конфиге виртуального хоста, на котором работает скрипт, кодировка по-умолчанию utf-8, то этот скрипт каждый раз сообщает вашему браузеру, что информация выдаётся в utf-8.
Из гугла скрипт получает инфу в cp1251, а браузеру он говорит, что инфа в utf-8.
Браузер показывает вам инфу в кодировке utf-8, хотя на самом деле она в cp1251.
Вам нужно либо:
1. Изменить кодировку виртуального хоста
2. Запрашивать у гугла инфу в нужной вам кодировке
3. Перекодировать инфу из кодировки, полученной в ответном заголовке гугла, в кодировку виртуального хоста.
Первый и третий варианты мне не очень, а вот второй нравится.
А как это сделать?
Кстати в браузер гугл передает страницы в utf-8 (при ручном запросе из браузера), на хосте у меня uft-8, скрипт на страничке с uft-8. А когда смотрю заголовок, отправляемый гуглом при запросе скрипта, то в заголовке стоит cp1251. Нафига гугл так делает?
P.s: кстати Яша выдает заголовок в utf-8 и все нормально отображается.
Буду признателен, если вы намекнете - как сбросить запрос в файл. То есть, вы подозреваете, что при запросе указывается кодировка для ответа и гугл в ней и выдает.
Ну, как сбросить..... просто 😂
Заменить google на локалхост наверное.