Есть ли у PHP какие-либо стандартные функции для преобразования строк Unicode в простые, добрые старомодные строки ANSI (или любой другой формат, htmlentities
понимает PHP- htmlentities
?
Есть ли какая-либо функция, которая преобразует строки UTF-8 в HTML, которые могут быть поняты самыми популярными браузерами?
Это не может работать должным образом. Хранится с Unicode, есть намного больше персонажей, чем с ANSI. Поэтому, если вы «конвертируете» в ANSI, вы потеряете множество символов.
http://php.net/manual/en/function.htmlentities.php
Вы можете использовать кодировку Unicode (UTF-8) с htmlentities:
string htmlentities ( string $string [, int $flags = ENT_COMPAT [, string $charset [, bool $double_encode = true ]]] )
htmlentities($myString, ENT_COMPAT, "UTF-8");
должно сработать.
Хотя я действительно рекомендую хранить все в UTF-8 (согласно моему комментарию по вопросу), вы можете использовать функцию mb_convert_encoding для преобразования любой известной строки UTF-8 в US-ASCII как таковой:
$asciiString = mb_convert_encoding ($sourceString, 'US-ASCII', 'UTF-8');
Однако это может быть не преобразование без потерь в зависимости от исходной символьной строки. (Символы, такие как «é», просто исчезнут в пустоте.)
Браузеры уже понимают UTF-8. Если вы хотите, чтобы они знали, что вы отправляете им UTF-8, вам нужно сказать им .