Чтобы заменить его:
Если ваш файл сценария закодирован в той же кодировке, что и данные, в которых вы пытаетесь выполнить замену, он должен работать так, как вы его разместили. Если вы работаете с данными UTF-8, убедитесь, что скрипт закодирован в UTF-8, и это не ваш редактор, который молча транслитерирует символ при вставке.
Если это не сработает, попробуйте экранировать его, как описано ниже, и посмотрите, какой код он возвращает.
Чтобы избежать этого:
Если ваш исходный файл закодирован в UTF-8, это должно работать:
$string = htmlentities($string, ENT_QUOTES, "UTF-8");
набор символов по умолчанию html...
равен iso-8859-1
. Все, что отличается от этого, должно быть четко указано.
Для более сложных проблем с преобразованием символов всегда проверяйте примечания, вносимые пользователем для таких функций, как htmlentities()
, там часто можно найти настоящие драгоценные камни.
В целом:
Бобинс прав в своем комментарии, системные проблемы набора символов должны систематически сортироваться, чтобы они не кусали вас в задницу - если только определяя, какой набор символов используется на каждом этапе пути:
- Как кодируется файл скрипта;
- как подается документ;
- как данные хранятся в базе данных;
- Как кодируется соединение с базой данных.