Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Вопрос про кодировку страниц!


Автор: Bynick 10.6.2008, 00:06
Всем привет. У меня вопрос такого рода. Есть в интернете страница, ее кодировка iso-8859-2.
Есть на этой странице слово Zapamiętaj, в этом слове "е" с закрючкой внизу. Эту страницу php сценарий сохраняет через CURL в файл:

Код

curl_setopt($curl_arr[$i], CURLOPT_FILE,$newfile[$i]);// запись в файл результата операции


Файл содается обычным образом:

Код

if(!($newfile[$i] = fopen("directory/". $i .".txt","w")))
{                                                 
       printf("Ошибка открытия файла для записи в папке directory");
       exit;
}


В самом начале php сценария стоит 

Код

         iconv_set_encoding("input_encoding","UTF-8");
    iconv_set_encoding("output_encoding","UTF-8");
    iconv_set_encoding("internal_encoding","UTF-8");


По умолчанию .txt файл , в который сохраняется страница со словом  Zapamiętaj имеет кодировку 1251(ANSI - кириллица). Если посмотреть на слово  Zapamiętaj, то в файле оно выглядит как Zapamiкtaj, то есть "e" с закорючкой не сохраняется как есть, а преобразуется. Опытным путем установил, что если взять просто слово Zapamiętaj и сохранить его локально в  кодировке UTF-8, а потом открыть то все сохраняется как положено. 


Подскажите пожалуйста как сохранять страницу html, которая может быть в принципе в любой кодировке, в файл .txt с кодировкой  UTF-8 для корретного отображения текста страницы.

Автор: Fortop 10.6.2008, 00:46
Цитата(Bynick @  10.6.2008,  00:06 Найти цитируемый пост)
По умолчанию .txt файл , в который сохраняется страница со словом  Zapamiętaj имеет кодировку 1251(ANSI - кириллица)

Это кто такое сказал?

Добавлено через 2 минуты и 6 секунд
$p = 'Однажды в студеную зимнюю пору';
$p = iconv('CP1251', 'UTF-8', $p);
file_put_contents('p.txt', $p);

Автор: Bynick 10.6.2008, 11:11
Цитата(Fortop @ 10.6.2008,  00:46)
Это кто такое сказал?



Я открыл мой .txt файл и нажал "Схранить как" в меню. Там последняя строка говорит что у меня кодировка стоит 1251(ANSI - кириллица). Может я не прав конечно, но все-таки...

 
Цитата(Fortop @ 10.6.2008,  00:46)

$p = 'Однажды в студеную зимнюю пору';
$p = iconv('CP1251', 'UTF-8', $p);
file_put_contents('p.txt', $p);



Этот способ не подходит, потому что у меня нету строки $p. У меня контент страницы берется с помощью CURL и записывается в файл. Обратиться к контенту таким способом я не могу к сожалению, CURL сам все сохраняет без моего ведома.


Какие еще есть способы, подскажите пожалуйста.

Автор: z-END 10.6.2008, 11:20
Цитата(Bynick @  10.6.2008,  12:11 Найти цитируемый пост)
Какие еще есть способы, подскажите пожалуйста.

сохранять самому, а от курла получать только строку.

Автор: Bynick 10.6.2008, 14:03
z-END, спасибо!, так и сделал с помощью curl_multi_getcontent().

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)