Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: curl и UTF8
 
 автор: Лена   (09.12.2008 в 16:09)   письмо автору
 
 

Когда я с помощью curl вытягиваю страницу, написанную в UTF8, у меня вместо текста - непонятные символы. В кодировке стоит - Windows
Затем вручную перевожу кодировку в UTF8 - и все нормально.
Как мне сделать, чтобы у меня сразу все передавалось, как надо.

  Ответить  
 
 автор: Trianon   (09.12.2008 в 16:18)   письмо автору
 
   для: Лена   (09.12.2008 в 16:09)
 

>Когда я с помощью curl вытягиваю страницу, написанную в UTF8, у меня вместо текста - непонятные символы.

>В кодировке стоит - Windows
Это где?

>Затем вручную перевожу кодировку в UTF8
Это как?

> - и все нормально. Как мне сделать, чтобы у меня сразу все передавалось, как надо.
Куда передавалось?

  Ответить  
 
 автор: Лена   (09.12.2008 в 16:29)   письмо автору
 
   для: Trianon   (09.12.2008 в 16:18)
 

Если и вы не поняли, значит, действительно плохо объяснила.
На локалхосте запускаю скрипт curl.php:

<?php
function get_url($url){
   
$proxy_address "";
   
$proxy_port "";
   
$r curl_init();
   
curl_setopt($rCURLOPT_NOPROGRESS0);
   
curl_setopt($rCURLOPT_RETURNTRANSFER1);
   
curl_setopt($rCURLOPT_URL$url);
   
curl_setopt($rCURLOPT_PROXY"$proxy_address:$proxy_port");
   
$res curl_exec($r);
   return 
$res;
}
echo 
get_url("http://www.kanzas.ua/go/ru/news");
?>

Прокси-адрес и порт опустила. Загружается нужная страница - http://www.kanzas.ua/go/ru/news. В броузере(в любом) - непонятные символы.
В Опере, например, открываю: Вид-Кодировка. Уменя стоит Кириллица-Автоопределение. Меняю кодировку:
Юникод-UTF8 - и все нормально.
Как сделать, чтобы я не лазила по кодировкам, а в результате действия скрипта страница показывалась в кодировке UTF8?

  Ответить  
 
 автор: Trianon   (09.12.2008 в 16:37)   письмо автору
 
   для: Лена   (09.12.2008 в 16:29)
 

И скрипт этот размещен на сайте с умалчиваемой кодировкой Windows-1251 . Так?

Вы не только вытянули страницу. Вы еще и выбросили её в поток клиента, не указав тип и кодировку содержимого . Отсюда и.
Перед echo get_url(...) нужно было написать header('Content-Type: text/html ; charset="utf-8"');

  Ответить  
 
 автор: Лена   (09.12.2008 в 17:16)   письмо автору
 
   для: Trianon   (09.12.2008 в 16:37)
 

Да, умалчиваемая кодировка Windows-1251.
header указала. Теперь в Опере и Mozillе все, как надо, а в IE при загрузке скрипта появляется стандартное окошко: сохранить или открыть файл скрипта? Нажимаю открыть - и отрывается сам скрипт. Почему так?

  Ответить  
 
 автор: BinLaden   (09.12.2008 в 17:19)   письмо автору
 
   для: Лена   (09.12.2008 в 17:16)
 

Обращаетесь по другому адресу?

  Ответить  
 
 автор: Лена   (09.12.2008 в 17:25)   письмо автору
 
   для: BinLaden   (09.12.2008 в 17:19)
 

Обращаюсь по одному и тому же адресу.
Простите, ошиблась. Открывается не сам скрипт, а html-код страницы, которая мне нужна - http://www.kanzas.ua/go/ru/news

  Ответить  
 
 автор: Trianon   (09.12.2008 в 17:27)   письмо автору
 
   для: Лена   (09.12.2008 в 17:16)
 

в строке заголовка нужно убрать пробел после text/html перед точкой-с-запятой.

  Ответить  
 
 автор: Лена   (09.12.2008 в 17:34)   письмо автору
 
   для: Trianon   (09.12.2008 в 17:27)
 

Спасибо, получилось. Странно, что в других броузерах получалось. IE оказался самым строгим, ни одного пробела не пропустит.

  Ответить  
 
 автор: Trianon   (09.12.2008 в 17:46)   письмо автору
 
   для: Лена   (09.12.2008 в 17:34)
 

Не строгий он, а наоборот неряшливый.
Браузер согласно стандарта должен есть пробелы в этом месте.

  Ответить  
 
 автор: Лена   (09.12.2008 в 17:53)   письмо автору
 
   для: Trianon   (09.12.2008 в 17:46)
 

Согласно какого стандарта? Кто его прописал?

  Ответить  
 
 автор: Trianon   (09.12.2008 в 17:57)   письмо автору
 
   для: Лена   (09.12.2008 в 17:53)
 

Как обычно RFC-2616

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования