Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для GoodWeather
886 / 588 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1

preg_replace_callback() и UTF8; PREG_BAD_UTF8_ERROR; Вероятно проблемы с кодировкой строк

18.03.2020, 09:53. Показов 893. Ответов 0

Студворк — интернет-сервис помощи студентам
Доброе утречко!

PHP я так-то не занимаюсь. Просто чуток ковыряю один форумный движок. Добавляю на досуге функционал для личного удобства.
И столкнулся вот с такой проблемкой, может что подскажет кто...

Периодически, вместо отправки или редактирования сообщений - текст просто полностью исчезает (видимо "сворачивается" в пустую строку) и соответственно ошибка вида "вы не ввели текст".
Путём наколенных исследований я выяснил, что во-первых логика кода чё-то совершенно не предполагает возможных ошибок, а во-вторых основная проблема явно из-за того что функция preg_replace_callback() возвращает null.
Погуглил и добавил preg_last_error() - теперь оно мне говорит, мол, а у вас тама PREG_BAD_UTF8_ERROR. Регулярка вида '#...#iu'. С одной стороны можно конечно было попытаться убрать u, но с другой стороны оно мне как бы нужно, так что даже заработав - это не было бы выходом.

Читаю вот описание:
u (PCRE_UTF8)
  • Этот модификатор включает дополнительную функциональность PCRE, которая не совместима с Perl: шаблон и целевая строка обрабатываются как UTF-8 строки. Недопустимая целевая строка приводит к тому, что функции preg_* ничего не находят, а неправильный шаблон приводит к ошибке уровня E_WARNING. Пятый и шестой октеты UTF-8 последовательности рассматриваются недопустимыми с PHP 5.3.4 (согласно PCRE 7.3 2007-08-28); ранее они считались допустимыми.
А в моём коде периодически могут конкатенироваться строки, в общем случае с неизвестной кодировкой. Могут лезть символы типа ��� и прочих.
Не потому что так и должно быть, а потому что я не понимаю как определить в какой кодировке приходит текст и как его конвертировать.
Обычно на месте изуродованных символов предполагалась кириллица.

Подскажите, что с этим можно сделать?
Конвертировать у меня чего-то так и не получилось, ну да и фиг с этими символами: а вот как бы сделать чтоб хоть preg_replace_callback() не падал?

Спасибо!

Добавлено через 2 часа 11 минут
Нашёл ещё, функция utf8_trim() принимает строку с моими неведомыми символами, и на выходе тоже пустая строка...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.03.2020, 09:53
Ответы с готовыми решениями:

Проблемы с кодировкой utf8
Делаю потихоньку сайт, возникла проблема некорректоного отображения на других компьютерах, конкретно в Fierfox. Мне сказали что нужно...

Проблемы с кодировкой при сравнении строк
Здравствуйте! Мне, нужно сравнить две строки: одну получаю get запросом(на сайте кодировка windows 1251), а вторая указывается...

QT dll с кодировкой UTF8
Добрый день. Подскажите пожалуйста: существует ли где то в свободном доступе компилированные dll QT с кодировкой UTF 8, а не latin1? Я...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.03.2020, 09:53
Помогаю со студенческими работами здесь

Трудности с кодировкой UTF8 в приложениях VS2017
Все проекты создаются с аброкадаброй... причем стандартные шаблоны создаются с кодировкой UTF8, а новые файлы в них - нет. Как решить эту...

Проблема с кодировкой UTF8 в richtextbox->Text
Здравствуете уважаемые форумчане, у меня проблема, не отображается кодировка русских букв в richtextbox->Text, дело в том что я написал...

Как в richTextBox открыть файл с кодировкой UTF8
Создан проект с названием 1. в результате создается папка 1, папка Debug, файл 1 - тип файла VC++ Intellisense Database и 1 тип файла...

Сохранить файл с кодировкой UTF8 без сигнатуры
Подскажите как можно сохранять текстовый файл с такой кодировкой? Собственно мне нужно сделать примерно следующие: StreamWriter file =...

Не могу создать базу с кодировкой utf8 windows/denver
Здравствуйте , хочу познакомиться с postesql вот установил приблуду для денвера , потом создал базу данных , но создаётся только типа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru