За последние 24 часа нас посетили 24563 программиста и 1681 робот. Сейчас ищут 845 программистов ...

Знаки вопроса в черных ромбиках вместо кириллицы в GET url

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

  1. kulya22056

    kulya22056 Новичок

    С нами с:
    12 июн 2017
    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте. Передаю в различных Get-переменных кириллицу, которая является тайтлом страниц. Сам захожу на сайт перехожу по ссылкам - все передается и отображается нормально, но в выдаче яндекса тайтлы отображаются вот так - Купить пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ в городе, а в url - .../zagolovok=�����%20�������%20���������. В кодировках не шарю, поставил везде charset=windows-1251. Как исправить кракозябры?
     
  2. lastdays

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

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Изначально надо переводить проект в utf8, использование функций mb_ ( strlen / substr и т.п. )
    Из минусов, разве что придется изменить немного код, кодировку файлов, ну и тот факт, что символ = 2 байта.
    За то глючить ничего не будет.

    Возможно есть извращенные варианты другие.
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.813
    Симпатии:
    1.332
    Адрес:
    Лень
    аминь

    файлы.php > в utf-8 без BOM
    .htaccess > AddDefaultCharset UTF-8
    meta теги где объявление кодировки в юникод так же
     
  4. kulya22056

    kulya22056 Новичок

    С нами с:
    12 июн 2017
    Сообщения:
    3
    Симпатии:
    0
    Сменил кодировку файлов на utf-8 без BOM,
    в .htaccess добавил AddDefaultCharset UTF-8,
    в мета тегах тоже указал utf-8.

    Теперь вся кириллица отображается нормально, но из БД выводится в виде ????????
    В базе данных сменил кодировку таблицы и полей на utf8_general_ci
    Когда вывожу данные из БД, ставлю mysql_query("SET NAMES 'utf-8'")
    На главной странице PhpMyadmin сопоставление кодировки соединения стоит utf8mb4_general_ci,
    пытаюсь поменять на utf8_general_ci, так она обратно сбрасывается на utf8mb4_general_ci.
    Как быть?
     
  5. kulya22056

    kulya22056 Новичок

    С нами с:
    12 июн 2017
    Сообщения:
    3
    Симпатии:
    0
    Вопрос закрыт. Неправильно было mysql_query("SET NAMES 'utf-8'"), надо так mysql_query("SET NAMES utf8")
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.813
    Симпатии:
    1.332
    Адрес:
    Лень