Кодировка

Статус
В этой теме нельзя размещать новые ответы.

Panzers^)

Постоялец
Регистрация
7 Окт 2007
Сообщения
69
Реакции
0
Вызываю страницу с удаленного сервака через функцию file_get_contents(); значит вызвали мы страничку, и пришла она ко мне в кодировке KOI8r. Так вот вопрос: как вызвать удаленную страничку в нормальной кодировке, чтобы она в исходной читабельной кодировке приходила?
 
iconv('"koi8-r','windows-1251',file_get_contents(url));
 
iconv('"koi8-r','windows-1251',file_get_contents(url));

Только iconv работает медленно и часто встает крива на хостингах. Геморный он чет. Может еще какие варианты подскажет кто? Частая задача перекодить
 
Только iconv работает медленно и часто встает крива на хостингах. Геморный он чет. Может еще какие варианты подскажет кто? Частая задача перекодить

тут нужно индивиудально подходить к вопросу
вот тут Для просмотра ссылки Войди или Зарегистрируйся нужно читать в самих комментах
там люди приводят пример как можно обойстись без iconv, т.е. по сути аналог этой функции предлагают
я не стал сюда копипастить текст, зайди по ссылке и смотри комменты

тоже долго мучала данная проблемма, использовал один из предложенных вариантов
 
Кстати, пока тема про кодировку зашла, есть еще один вопросец: Имеем форму, имеем кнопку отправки данных из формы в БД, вся инфа в скрипте из БД нормально отображается, а ту которую из формы отправляешь, то кодировка меняется, как такое исправить? Где что дописать?
Пробовал это писать:
PHP:
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
Не помогает =(
 
у тебя видимо сама страница в кодировке отличной от cp1251 загружается (utf,koi8r..), потому данные с формы передаются скрипту не в windows-1251 и "set character.." тут безполезно.. нужно либо менять кодировку страницы, либо скриптом дополнительно конвертить в windows-1251
 
как такое исправить? Где что дописать?

Проверить кодировку страницы из которой отправляются данные можно разными способами:

1. в IE в меню view -> Encoding.
2. телнетом открыть вашу страницу и посмотреть заголовок HTTP ответа веб-сервера.

telnet ваш-домен 80
GET / HTTP/1.0

Скорее всего у вас там не windows-1251. UTF8, например, или Western European ISO.

Лечится тоже по-разному:
- можно добавить в .htaccess одну из строк

AddDefaultCharset Windows-1251

или

AddDefaultCharset ru_RU.cp1251

в зависимости от хостинга.

- можно поставить в HTML

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

- можно через header('Content-type: text/html; charset=win-1251'); отдавать
 
  • Нравится
Реакции: Mons
windows-1251 стоит, БД тоже в windows-1251, добавлять в хтаксес тоже пробовал - тоже самое..
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху