Поддерживается ли utf8mb4 в PHP 5.2.7?
У меня есть два сервера, на которых работают следующие версии PHP и MySQL соответственно
Сервер 1:
PHP version 5.2.7
MySQL: 5.5.36
Сервер 2:
PHP version 5.4.23
MySQL: 5.5.36
Поскольку версия MySQL обновлена, MySQL может обрабатывать utf8mb4_general_ci
Таким образом, в случае с сервером 2 все специальные символы, такие как ',''и т. Д., Вставляются так, как они есть в базе данных, без escape-слешей.
А куда как заходить на сервер 1
Специальные символы не вставляются как есть, это показывает следующий способ, это вместо
Поэтому я сомневаюсь, что версия PHP имеет значение?
Я использую Codeigniter, настроенный одинаково на обоих серверах.
1 ответ
Что касается вопроса, заданного в заголовке, нативные строки PHP являются просто байтовыми строками и, таким образом, поддерживают 4-байтовые символы UTF-8 в той же степени, в которой они поддерживают символы UTF-8 с меньшим количеством байтов. Похоже, что функции PHP, поддерживающие многобайтовые символы, поддерживают 4-байтовые символы, если взглянуть на эту страницу руководства.
Как указано в комментариях, ваша настоящая проблема заключается в том, что магические кавычки включены на одном сервере, но не на другом. Вы, вероятно, должны выключить его. Если вы хотите, чтобы ваш код был переносимым, стоит потратить время на написание кода, который может справиться с включением или отключением магических кавычек.