Покинул форум
Сообщений всего: 87
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
Совсем запутался с кодировками. Получаю курлом страницу, она содержит русский текст и в браузере этот текст отображается некорректно. Если сохранить полученное в фаил, а потом вручную пересохранить в ansi, то отображается нормально, если выводить командой php. Но опять же, сплошные квадратики, если его открыть файлом хтмл. Я так понял, крякозябры получаются если текст выводимый в браузере, имеет кодировку отличную, от той, которая содержится в мета тегах этого текста. А что тогда ее меняет? Как это исправить? В какой кодировке содержимое, получаемое функций file_get_contents? ANSI и Windows-1251 это одно и то же? И еще интересно, регулярные функции могут также не понять с чем они имеют дело и за счет этого выдавать не то, что в шаблоне?
Maxi
Отправлено: 13 Марта, 2012 - 18:56:25
Гость
Покинул форум
Сообщений всего: 107
Дата рег-ции: Июнь 2010 Откуда: Kharkov, Ukraine
P.S. там конечно еще есть некоторые моменты которые я пропустил. Но вот эти по крайней мере исправляют многие недочеты
UNTRUSTED
Отправлено: 14 Марта, 2012 - 21:19:45
Частый гость
Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012
Помог: 2 раз(а)
С этим utf-8 тоже мучался мучался... И оставил все-таки cp-1251
Никак не получалось header(Location:...) запустить!! Насколько я знаю, это потому что utf-8 всегда в начале файла какие-то там символы выводит!!!
Да и зато с cp-1251 у меня вообще пролем никаких!!!
jovani
Отправлено: 14 Марта, 2012 - 21:28:15
Новичок
Покинул форум
Сообщений всего: 32
Дата рег-ции: Март 2012
Помог: 0 раз(а)
При создании приложений php желательно прописать в самом начале следующее выражение
Много чего перерыл, но что происходит понять не могу. Получаю страницу чужого сайта курлом и она выводится с крякозябрами. Записываем ее в файл при помощи fwrite с расширением htm - два клика и о чудо, в браузере все нормально. Читаю тот же файл echo file_get_contents -- снова иероглифы. Смотрю исходный код в обоих страницах - идентичен. Разве что у страницы, которая при помощи скрипта выводится пустая строка есть в начале. Может кто объяснит из за чего это происходит? Что то php своего чтоли добавляет, что браузер с ума сходит?
Maxi
Отправлено: 16 Марта, 2012 - 00:25:07
Гость
Покинул форум
Сообщений всего: 107
Дата рег-ции: Июнь 2010 Откуда: Kharkov, Ukraine
Много чего перерыл, но что происходит понять не могу. Получаю страницу чужого сайта курлом и она выводится с крякозябрами. Записываем ее в файл при помощи fwrite с расширением htm - два клика и о чудо, в браузере все нормально. Читаю тот же файл echo file_get_contents -- снова иероглифы. Смотрю исходный код в обоих страницах - идентичен. Разве что у страницы, которая при помощи скрипта выводится пустая строка есть в начале. Может кто объяснит из за чего это происходит? Что то php своего чтоли добавляет, что браузер с ума сходит?
А сама кодировка в браузере какая указана?
createl
Отправлено: 16 Марта, 2012 - 04:39:57
Гость
Покинул форум
Сообщений всего: 87
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
Maxi пишет:
А сама кодировка в браузере какая указана?
В настройках браузера по умолчанию windows-1251. В мета тегах получаемой страницы стоит utf-8. Кстати, если получать курлом страницу другого какого-нибудь сайта, который присылает страницу, где в метах прописано windows 1251, даже через скрипт все отображается нормально. А если убрать метатег utf-8 в сохраненной страничке с расширением htm, то тогда тоже иероглифы(то есть ясно прописано какая кодировка должна быть, но браузер упорно отказывается этому внимать в случае работы скрипта - причем любой браузер).
UNTRUSTED
Отправлено: 16 Марта, 2012 - 05:29:59
Частый гость
Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012
Помог: 2 раз(а)
Морозов Семен пишет:
и в конечном счете в метатеге html записать вот это:
CODE (html):
скопировать код в буфер обмена
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Браузеры уже давно meta теги игнорят!
shabalin
Отправлено: 16 Марта, 2012 - 05:58:42
Новичок
Покинул форум
Сообщений всего: 24
Дата рег-ции: Март 2012
Помог: 2 раз(а)
UNTRUSTED пишет:
Браузеры уже давно meta теги игнорят!
Не игнорят. Хотя приоритет у них и ниже, чем HTTP-заголовки.
createl, У вас скорее всего проблема в том, что страница, которую вы получаете с чужого сайта - в кодировке, отличной от вашей. Вам нужно узнать по заголовкам, какая кодировка у той страницы и переконвертировать страницу в вашу кодировку, будть то Windows-1251 или UTF-8.
Например, если у удаленной страницы кодировка UTF-8, а у вас, как я понял, Windows-1251, то код будет таким:
----- Winginx, локальный сервер для разработчиков PHP, Node.js, MongoDB и MySQL
http://winginx.ru/
createl
Отправлено: 23 Марта, 2012 - 20:34:13
Гость
Покинул форум
Сообщений всего: 87
Дата рег-ции: Янв. 2012
Помог: 0 раз(а)
shabalin пишет:
createl, У вас скорее всего проблема в том, что страница, которую вы получаете с чужого сайта - в кодировке, отличной от вашей. Вам нужно узнать по заголовкам, какая кодировка у той страницы и переконвертировать страницу в вашу кодировку, будть то Windows-1251 или UTF-8.
Ура, добрался до PHP наконец. Действительно так и я кажется понял, что к чему в этих кодировках. Спасибо всем, особенно shabalin и Морозову Семену (за вариант с .htaccess)
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.