Intereting Posts
Какие коды могут быть в транзакциях PDO? Как изменить приоритет действия в WordPress? slim php (объяснение документации «тело запроса») Ошибка подключения к MySQL. Не удается подключиться к серверу MySQL на «http» (4) Прочитайте URL-адрес CSV и импортируйте выбранные данные в mysql с помощью PHP FILTER_VALIDATE_EMAIL делает строку безопасной для вставки в базу данных? Почтовая форма – я не получал электронную почту как отправлять электронную почту с localhost с помощью php CodeIgniter отображать дату / время на базе сайта на компьютерном времени пользователя в разных странах Где в дискриминационных таблицах Как использовать переменную $ _POST в mysqli-запросе? (РНР) Ошибка учетной записи службы SDK Google Диска «Аутентифицированный пользователь не установил приложение с идентификатором клиента …» Сохранить кнопку внутри загрузочного модала 3 PHP и MYSQL отображают 1 запись с несколькими именами Запретить Wappalyzer определять структуру PHP

PHP utf8_encode () преобразует пробелы в неразрывные пробелы

Совершенно просто: utf8_encode ($ string) заменяет регулярные пробелы неразрывными пробелами ("\ u00a0"). Я попытался фильтровать результат с помощью str_replace:

str_replace("\u00a0", " ", utf8_encode($string)) 

Но это не исправить.

EDIT: Вздох, я идиот. Это не проблема с utf8_encode (). Я думал, что использую эту функцию, забыл, что я отключил ее в своем коде. Мои данные запускаются через json_encode () для запроса AJAX. Это проблема с json_encode ()? Я боюсь, что я могу быть виновным в злоупотреблении Stack Overflow. Я попробую разыграть его.

ЗАКЛЮЧИТЕЛЬНЫЙ РЕДАКТИРОВАНИЕ: проблема заключалась в самих данных, которые были скопированы из документа Word в таблицу MySQL. Все пробелы были скопированы как неразрывные пробелы. Извините за то, что тратишь время всех.

str_replace ("\ u00a0", "", utf8_encode ($ dat)). Но это не исправить.

PHP имеет только байтовые строки, а не собственные строки Unicode; следовательно, нет выхода \u и вы просили его буквально преобразовать последовательности обратной косой черты-буквы в входе.

Чтобы избавиться от неиспользуемых пробелов, вам придется заменить \xA0 (если это делается по данным ISO-8859-1, которые, предположительно, перед передачей в utf8_encode ) или \xC2\xA0 (если это сделано после перекодирования в UTF- 8).

utf8_encode только перекодирует ISO-8859-1 в UTF-8, он не коснулся пробелов, поэтому, по моему подозрению, у вас есть неиспользуемые пробелы в ваших фактических данных.

Попробуй это

 $str = trim($str, chr(0xC2).chr(0xA0))