За последние 24 часа нас посетили 19345 программистов и 1679 роботов. Сейчас ищут 1175 программистов ...

Кодировка при работе с mysql.

Тема в разделе "MySQL", создана пользователем alex-777, 25 сен 2024.

Метки:
  1. alex-777

    alex-777 Активный пользователь

    С нами с:
    11 апр 2019
    Сообщения:
    42
    Симпатии:
    0
    Всем привет,

    нужно заносить в базу данных спарсенные данные.
    Иногда в базу записываются вопросы, это какие-то части строки, которые при выборе мышкой в dbforge studio превращаются в вопросы.
    База данных, таблица и поле в кодировке utf8mb4.

    При записи в поле значения "✨ ✨" записывается как "✨ ???????????????????????????????????????????????? ✨"

    Голова вообще не варит, куда копать?

    UPD. Здесь на форуме при записи слово вообще не сохранилось, значение "✨ ProShop ✨" в посте сохранилось без ProShop, и это слово как бы не буквами, а какими-то странными символами, похожими на буквы, но которые после записи превращаются в вопросы. И когда мышкой в dbforge studio выделяю часть этого слова выделение идет не по месту курсора, а рядом и в виде знаков вопроса. Такое впечатление, что когда выделяешь одну букву, вместо нее появляются два знака вопроса в квадратике и пробелы между ними. Простите, что сумбурно, но какая-то непонятка с кодировкой.

    Спасибо
     
    #1 alex-777, 25 сен 2024
    Последнее редактирование: 25 сен 2024
  2. cacek38564

    cacek38564 Гость

    С нами с:
    25 сен 2024
    Сообщения:
    1
    Симпатии:
    0
    Я думаю что хоть база данных и таблица установлены на utf8mb4, возможно, соединение с базой данных не использует правильную кодировку. Сделайте или убедитесь, что соединение с базой данных также настроено на utf8mb4.

    Например можно сделать так:
    PHP:
    1. $mysqli->set_charset("utf8mb4");
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.853
    Симпатии:
    748
    Адрес:
    Татарстан
    Указывайте верную кодировку... самой БД, таблиц и нужных полей

    Чтоб сказать точнее - нужно видеть код - как вы их записываете в БД.. начиная от установки соединения (у него тоже может быть кодировка)
    и заканчивая записью в БД
     
  4. alex-777

    alex-777 Активный пользователь

    С нами с:
    11 апр 2019
    Сообщения:
    42
    Симпатии:
    0
    База, таблица. поле, соединение с базой все в utf8mb4, иначе бы символы молний не записались.
    Я вставляемое значение даже в этот пост вставить полностью не могу, молнии остаются, слово "ТЕСТ" остается, а "ProShop", часть поля превращаются в вопросы после записи в базу.
    Вот значение после сохранения этого поста "⚡⚡⚡ ⚡⚡⚡ ТЕСТ", и слово ProShop при вставке в этот пост отображается жирным, хотя никакие стили не заданы, а после сохранения поста - исчезает.
    А в базу записывается "⚡⚡⚡ ???????????????????????????? ⚡⚡⚡ ТЕСТ".
    Текстовый файл с значением поля прилагаю. Молнии, слово ТЕСТ записывается, а со словом ProShop проблемы, кажется, что это не буквы, а символы какие-то.
     

    Вложения:

    • test.txt
      Размер файла:
      57 байт
      Просмотров:
      5
    #4 alex-777, 25 сен 2024
    Последнее редактирование: 25 сен 2024
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.833
    Симпатии:
    651
  6. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    423
    Симпатии:
    79
    Адрес:
    Бавария, Германия
    Добрый день!
    PHP:
    1. <?
    2. $str = "⚡⚡⚡ ⚡⚡⚡ ТЕСТ";
    3. $arr = mb_str_split($str);
    4. foreach($arr as $ch)
    5. echo "$ch ",mb_ord($ch,"UTF-8"), "<br>";
    6. /*
    7. ⚡ 9889
    8. ⚡ 9889
    9. ⚡ 9889
    10. 32
    11. 119823
    12. 119851
    13. 119848
    14. 119826
    15. 119841
    16. 119848
    17. 119849
    18. 32
    19. ⚡ 9889
    20. ⚡ 9889
    21. ⚡ 9889
    22. 32
    23. Т 1058
    24. Е 1045
    25. С 1057
    26. Т 1058
    27. */
    Символ код 119823
    https://www.codetable.net/decimal/119823
    Удачи!
     

    Вложения:

  7. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.833
    Симпатии:
    651
    «Символы молний» 3-байтовые, так что они могут сохраняться и в устаревшей 3-байтовой кодировке. Но у вас проблема может быть просто в представлении, как я выше написал ;)
    --- Добавлено ---
    В современном браузере воспроизводятся эти символы? Или тоже вопросики?
     
  8. alex-777

    alex-777 Активный пользователь

    С нами с:
    11 апр 2019
    Сообщения:
    42
    Симпатии:
    0
    Всем спасибо, теперь понятно.