За последние 24 часа нас посетили 50836 программистов и 1745 роботов. Сейчас ищут 926 программистов ...

Неверная кодировка текста

Тема в разделе "PHP для новичков", создана пользователем pavel8897, 13 сен 2017.

  1. pavel8897

    pavel8897 Новичок

    С нами с:
    13 сен 2017
    Сообщения:
    37
    Симпатии:
    0
    Доброго дня! Сделал вывод русского текста из таблицы phpmyadmin, но на выходе получились знаки вопроса. Подскажите, в чем может быть дело, или может как правильно подставить функция iconv?

    Код (Text):
    1. $_SESSION['id'] = $result['id'];
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Эта проблема стара как мир и решена много раз. Решение легко найти как в гугле, так и в поиске по форуму.
    Для корректного отображения символов нужно обеспечить одинаковую кодировку (utf-8) для:
    - meta тэга с указанием charset;
    - самого файла в котором лежит php скрипт;
    - соединения браузера с сервером;
    - соединения сервера с базой данных;
    - таблицы в базе данных (utf8_general_ci или utf8mb4_general_ci).
     
    eldor нравится это.
  3. pavel8897

    pavel8897 Новичок

    С нами с:
    13 сен 2017
    Сообщения:
    37
    Симпатии:
    0
    Спасибо! Везде вроде поставил, но все равно остается кракозябра. Может в node++ как то выставить.
     
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Если бы везде поставил, то работало бы. Иди по цепочке и проверяй. Что-то упустил.
     
  5. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    Тут есть нюанс - нужна кодировка самого файла в формате "utf-8 без BOM", а не просто "utf-8". Я знаю точно, что такую кодировку можно выбрать в Notepad++.
     
  6. Познающий php

    Познающий php Новичок

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
    set_charset для соединения с базой Должно хватать за глаза обычно при таком раскладе!
     
  7. pavel8897

    pavel8897 Новичок

    С нами с:
    13 сен 2017
    Сообщения:
    37
    Симпатии:
    0
    Просто обычная utf-8?
     

    Вложения:

    • utf8.png
      utf8.png
      Размер файла:
      3,4 КБ
      Просмотров:
      4
  8. pavel8897

    pavel8897 Новичок

    С нами с:
    13 сен 2017
    Сообщения:
    37
    Симпатии:
    0
    Записываю значение в сессию, при этом стоит кодировка utf-8 везде.
    Где найти кодировки соединение браузера с сервером и соединение сервера с базой? Просто был уверен, что там аналогичные стоят.
    Вылезает при выводе из сессии. В сессию сохранял в windows-1251.
     
  9. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    Нет есть "utf-8 без bom". Домой приеду - скину скрин.
     
  10. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    Вот.
     

    Вложения:

  11. pavel8897

    pavel8897 Новичок

    С нами с:
    13 сен 2017
    Сообщения:
    37
    Симпатии:
    0
    Спасибо! А вот на этом скриншоте UTF-8-BOM это минус BOM или тире или нужно обновленную версию скачивать?
    [​IMG]
     

    Вложения:

    • utf8.png
      utf8.png
      Размер файла:
      3,4 КБ
      Просмотров:
      6
  12. gruth

    gruth Активный пользователь

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    Попробуй в htaccess поставить кодировку.
    AddDefaultCharset UTF-8
     
  13. pavel8897

    pavel8897 Новичок

    С нами с:
    13 сен 2017
    Сообщения:
    37
    Симпатии:
    0
    Она и есть
     
  14. gruth

    gruth Активный пользователь

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    И все равно не правильно отображает??
     
  15. pavel8897

    pavel8897 Новичок

    С нами с:
    13 сен 2017
    Сообщения:
    37
    Симпатии:
    0
    Да, второй день уже с ней маюсь, не в какую
     
  16. gruth

    gruth Активный пользователь

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    Кинь скрин, если есть мозила то слева от адреса есть значок, нажми. Откроется инфо о странице, тоже заскринь
     
  17. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    похоже что ты уперся в кодировку соединения с бд.
    Тебе уже подсказывали как решить эту проблему.
    Вот эту штуку сразу после соединения с БД.
     
  18. pavel8897

    pavel8897 Новичок

    С нами с:
    13 сен 2017
    Сообщения:
    37
    Симпатии:
    0
     

    Вложения:

    • screen.png
      screen.png
      Размер файла:
      18,8 КБ
      Просмотров:
      3
    • session.png
      session.png
      Размер файла:
      6,6 КБ
      Просмотров:
      3
  19. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    Если мне Notepad++ предлагает обновление, то я как правило обновляю. В Вашем случае "UTF-8-BOM" думаю это "UTF-8 без BOM" - попробуйте.
     
  20. pavel8897

    pavel8897 Новичок

    С нами с:
    13 сен 2017
    Сообщения:
    37
    Симпатии:
    0
    Да, так тоже пробовал, безрезультатно
     
  21. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    Как Вы меняете расширение файла? Выбираете "encode in utf-8 - bom или "convert to utf-8 - bom"?
     
  22. pavel8897

    pavel8897 Новичок

    С нами с:
    13 сен 2017
    Сообщения:
    37
    Симпатии:
    0
    Без конвертации. Вырезаю текст со страницы, далее выставляю другую кодировку и обратно вставляю текст. Делаю так, потому что иначе текст превращается в каракули в самом редакторе.
     
  23. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    Каким редактором пользуетесь? Если notepad++, то справа внизу у Вас стоит utf-8 или utf-8 bom?
     
  24. gruth

    gruth Активный пользователь

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    Осталось 2 скрина сделать и проблема решится. Для начала скрин строки обьявления mysql