Постоянные проблемы с кодировкой, помогите.

Discussion in 'PHP' started by Edward, 5 Feb 2011.

  1. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Не первый раз замечаю, что создав тот или иной php или HTML файл, после заливки его на сервер весь текст отображается каракулями, т.е. траблы с кодировкой. 1 из примеров был файл на сервере index.html, который содержал пару строк текста, на русском языке, отображался правильно. Скачал я его по FTP, открыл через Dreamwiewer, вставил еще текста и обратно залил, после этого на сервере весь текст, даже тот что был ранее на странице отображается каракулями. Смена кодировки в <meta не помогает. Скажите, от чего зависит кодировка? кто или что ею управляет? почему у меня подобные проблемы и как их решить?
     
  2. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    В .htaccess добавь. В корневую папку.
     
  3. SaiRus

    SaiRus Elder - Старейшина

    Joined:
    24 Nov 2008
    Messages:
    369
    Likes Received:
    41
    Reputations:
    0
    вообще браузер определяет кодировку по первому символу загружаемого файла или по заголовкам или по .htaccess. Также в запросах к базе есть сопоставление кодировки. Когда ты открываешь файл на редактирование, перед сохранением убедись, что сохраняешь в нужной кодировке.
    в DW поменять кодировку файла можно в Modify->Page properties-> Encoding (BOM не включай)
     
    1 person likes this.
  4. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Сервер отправляет заголовки по внутренним настройкам или изменению таковых в .htaccess
     
  5. SaiRus

    SaiRus Elder - Старейшина

    Joined:
    24 Nov 2008
    Messages:
    369
    Likes Received:
    41
    Reputations:
    0
    PHP:
    header('Content-Type: text/html; charset=windows-1251');
    и так их нельзя переопределить?
     
  6. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    По идее можно, но у ТСа скорее сервер посылает их не правильно, а не отдельный php-скрипт
     
  7. SaiRus

    SaiRus Elder - Старейшина

    Joined:
    24 Nov 2008
    Messages:
    369
    Likes Received:
    41
    Reputations:
    0
    а мне показалось наоборот, судя по тому что проблемы появляются после изменения :)
     
  8. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Edward создавайте все проекты в UTF8.
    1) Файлы в UTF8 без BOM
    1.1) Заливать файлы по ФТП нужно в двоичном режиме
    2) Соединение с СУБД в UTF8 (с помощью SET NAMES)
    3) Сами таблицы создавайте в этой же кодировке
    4) Указывайте в meta
    5) Устанавливайте кодировку в заголовках отсылаемых сервером (проверьте например с помощью LiveHTTPHeaders их значение)

    Проблемы могут возникнуть на любом из этих этапов

    SaiRus прямо-таки по одному байту можно определить кодировку?
     
    _________________________
  9. SaiRus

    SaiRus Elder - Старейшина

    Joined:
    24 Nov 2008
    Messages:
    369
    Likes Received:
    41
    Reputations:
    0
    на счет символа, возможно погорячился :rolleyes:
     
    #9 SaiRus, 5 Feb 2011
    Last edited: 5 Feb 2011
  10. hkmakes

    hkmakes Member

    Joined:
    3 Jan 2010
    Messages:
    126
    Likes Received:
    11
    Reputations:
    10
    Блин...
    Просто файлы сохраняй в девственной кодировке или в двоичном режиме копируй
     
  11. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Спасибо, помогло. Поковырялся в настройках DW кодировок.