ФорумСообществоФлейм → Кодировочка...

Кодировочка...

  • Jane

    Сообщения: 363 Репутация: N Группа: Адекваты

    Spritz Авг. 31, 2016, 9:09 п.п.

    Не смогла выбрать, в какой раздел это запихнуть, потому напишу здесь.. :)

    Случилось мне тут озадачиться переводом сайта в кодировку utf-8. Нашла рекомендации, всё сделала по ним.
    Т.е. прописала в коде в meta теге, поменяла кодировку БД и всех таблиц и полей с текстом на нужную, добавила строчку в htaccess и пересохранила все текстовые (и похожие на них) файлы в utf, как того советовали в статьях.
    И с самим сайтом всё замечательно стало, как и задумывалось, но вот по мере смены кодировки текстовых файлов - в локальной версии страницы превращались во что-то страшное с крякозябрами.

    Нашла информацию, что нужно файлик конфигурации самого апача (httpd.conf) тоже поднастроить и прописать там кодировку по умолчанию, или закомментировать строчку с ней. (между всеми процедурами денвер перезапускала)
    Однако это не помогает, все браузеры на компе локальную версию упорно по умолчанию конвертируют в windows-1251...

    Уже закончились идеи, где ещё копать.
    Может кто сталкивался с подобным, или знает, в каком направлении ещё поискать корень проблемы? %)

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Авг. 31, 2016, 9:31 п.п., спустя 22 минуты 7 секунд

    не работает только локальная версия? которая под гавноденвером работает?

    Сапожник без сапог
  • Jane

    Сообщения: 363 Репутация: N Группа: Адекваты

    Spritz Авг. 31, 2016, 9:59 п.п., спустя 28 минут 21 секунду

    Ага, на сервере всё ок, но т.к. я сперва все правки делаю на локальной версии и потом заливаю на сервер - это оочень неудобно, хочется локальную вернуть к рабочему виду.
    Пока везде была старая кодировка - всё отлично работало, но возвращаться на неё не хочется, да и валидатор выдал, что ему нужна utf-8 :))

    Локальная версия сервера: Денвер-3 2012-09-16
    Думала попробовать поновее скачать, но там тоже 3й.

    Спустя 276 сек.

    Стоит другой сервер попробовать? Если да, то какой будет грамотнее работать? Меня на Денвер ещё в 2007м году подсадили, я даже не интересовалась другими и их преимуществами (если такие есть))

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Сен. 1, 2016, 12:29 д.п., спустя 2 часа 29 минут 35 секунд

    @Jane, надо смотреть откуда приходят заголовки, если с http, то виноват веб сервер (либо пхп который может сам отправлять заголовки, у меня все сайты из пхп жестко фиксируют все чтобы не ебать себе мозг вебсерверами). Возможно у вас вебсервер не читает конфигурацию. Прочитайте статье про то как кодировку задавать жестко, мне объяснять в лом, думаю что 100500 статей в интернете есть. Суть в том что если ваша любая страница из пхп будет задавать заголовок Contant-Type, то все будет ок.

    Сапожник без сапог
  • Jane

    Сообщения: 363 Репутация: N Группа: Адекваты

    Spritz Сен. 1, 2016, 1:05 д.п., спустя 36 минут 9 секунд

    все страницы php, на всех страницах есть этот заголовок, где строго прописана кодировка.
    Она же прописана в файле htaccess , в файле конфигурации апача, и установлена по умолчанию в БД, даже при подключении к базе указано: "SET NAMES UTF8", и как я писала выше, все файлы сохранены в этой кодировке.
    В общем, я сделала все рекомендации, что были в сети на этот счёт. И для реального сайта это сработало отлично, а с локальным - если ставить в браузере выбор кодировки автоматически - он думает, что там windows-1251.
    Можно, конечно, тупо на локальной версии заставлять браузер тоже читать сайт в utf-8... Но мне ситуация не даёт покоя, хочется найти причину и исправить :))

    В статьях нового пока ничего не находится, только те рекомендации, что уже сделаны.
    Если учесть, что файлы, лежащие в сети и дома - одинаковые, БД - тоже, остаётся версия, что проблема с апачем и его настройками. Но там была только одна рекомендация по настройке: в файле httpd.conf прописать жёстко кодировку, либо вообще закомментировать с ней строчку.
    В моём случае это не сработало. В какие ещё файлы для настройки можно\стоит залезть - пока не нашла, потому я и пишу тут.
    Сейчас склоняюсь просто к переустановке вебсервера, может у меня какие-то файлы изначально были кривые.

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Сен. 1, 2016, 1:39 д.п., спустя 34 минуты 16 секунд

    все страницы php, на всех страницах есть этот заголовок, где строго прописана кодировка.

    @Jane, ты про HTML nег я полагаю?

    Сапожник без сапог
  • Jane

    Сообщения: 363 Репутация: N Группа: Адекваты

    Spritz Сен. 1, 2016, 2:39 д.п., спустя 1 час 8 секунд

    @Jane, ты про HTML nег я полагаю?

    @phpdude, да
    который: <meta charset="utf-8"> или <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    А после данного вопроса у меня закралось подозрение, что есть ещё какой-то способ, о котором я пока не ведаю :)
    Из любопытства вбила в поисковик способ задания кодировки в php, он выдал вариант:
    <?php
    header("Content-Type: text/html; charset=utf-8");
    ?>

    Это оно? Стоит ещё так попробовать? Или это уже танцы с бубном (учитывая, что у меня и так во всех местах указана кодировка)?
    Сейчас уже поздно в любом случае, утром проверять буду, если этот способ лучше.

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Сен. 1, 2016, 3:34 д.п., спустя 55 минут

    Это оно? Стоит ещё так попробовать?

    @Jane, с этой строчки нужно начинать любой php скрипт. Вставляй ее и радуйся что все пашет

    Спустя 22 сек.

    Или это уже танцы с бубном (учитывая, что у меня и так во всех местах указана кодировка)?

    @Jane, если использовать эту строчку, то в других местах похрену что будет указано.

    Спустя 37 сек.

    который: <meta charset="utf-8"> или <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    @Jane, HTTP заголовки имеют приоритет перед HTML meta тегами

    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz Сен. 1, 2016, 11:10 д.п., спустя 7 часов 35 минут 54 секунды

    проблема с Денвером известная. там где-то в конфиге есть AddDefaultCharset windows-1251 её надо убрать. возможно даже в нескольких местах, хз, ищи.
    кроме того, надо разрешить переопределять параметры: AllowOverride all сделать, иначе твои .htaccess могут не работать!

    ну и вполне возможно, что ты сервак перегрузила, страничку заново открыла но видишь старое говно, потому что браузер тупо не понял, что кеш надо сбросить. если попростому: всегда жми Ctrl+F5 чтобы наверняка.

    ιιlllιlllι унц-унц
  • Jane

    Сообщения: 363 Репутация: N Группа: Адекваты

    Spritz Сен. 1, 2016, 11:21 д.п., спустя 10 минут 16 секунд

    Не прокатило.
    Warning: Cannot modify header information - headers already sent by...

    Ругается, что заголовок уже был послан при подключении к БД

    В общем, старый Денвер был снесён на прочь (тем более, что там ещё обнаружилась проблема с экспортом из БД), и установлен новый. где в конфиге закомментировала строчку с выбором кодировки. И это сработало на тех страницах, которые были пересохранены в нужной кодировке. Пойду с остальными теперь разбираться.

    @artoodetoo, Всегда смотрю через Ctrl+ F5 )) иногда даже напрочь вычищаю историю, куки и вообще всё что можно по сайту, чтобы уж наверняка (а в ИЕ история даже не хранится - браузер тупо для отладки, чтобы у тех, кто в нём сидит тоже всё работало))

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Сен. 1, 2016, 1:51 п.п., спустя 2 часа 30 минут 27 секунд

    Не прокатило.
    Warning: Cannot modify header information - headers already sent by...

    Ругается, что заголовок уже был послан при подключении к БД

    @Jane, ну так вставь строчки до подключения к базе! бинго! :) Переделывай, на сейчас тебе два

    Спустя 17 сек.

    проблема с Денвером известная. там где-то в конфиге есть AddDefaultCharset windows-1251 её надо убрать. возможно даже в нескольких местах, хз, ищи.
    кроме того, надо разрешить переопределять параметры: AllowOverride all сделать, иначе твои .htaccess могут не работать!

    @artoodetoo, на все это похуй если слать из php заголовок родной.

    Сапожник без сапог
  • Jane

    Сообщения: 363 Репутация: N Группа: Адекваты

    Spritz Сен. 1, 2016, 5:08 п.п., спустя 3 часа 17 минут 4 секунды

    @Jane, ну так вставь строчки до подключения к базе! бинго! :) Переделывай, на сейчас тебе два

    @phpdude, у меня подключение к базе происходит в отдельном классе, который грузится до загрузки самой страницы, так что не знаю, как там впихнуть этот код, да и проблема самоустранилась просто переустановкой денвера.

    Но на будущее запомню, если придётся столкнуться с этим ещё раз. Я же как бы не верстальщик и не программист (разве что по диплому, и то давно и не правда))). Потому переписывать много кода в разных файлах, чтобы появилась новая строчка - на это нужно ещё с духом собраться )) и так 2 дня потратила на отладку неработающего кода, теперь беру перерыв :))
    Спасибо за советы.

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Сен. 1, 2016, 5:15 п.п., спустя 6 минут 20 секунд

    я сделал что смог

    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!