PHP: преобразование строк Unicode в строки ANSI - PullRequest
3 голосов
/ 14 января 2011

Есть ли в PHP какие-либо стандартные функции для преобразования строк Unicode в простые добрые старомодные строки ANSI (или любой другой формат, который понимает PHP htmlentities?

Существует ли какая-либо функция, преобразующая строки UTF-8 в HTML, которая может быть понята большинству популярных браузеров?

Ответы [ 3 ]

7 голосов
/ 14 января 2011

Это не может работать должным образом.В 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"); должно работать.

6 голосов
/ 14 января 2011

Хотя я бы действительно рекомендовал хранить все в UTF-8 (согласно моему комментарию к вопросу), вы можете использовать функцию mb_convert_encoding для преобразования любого известного UTF-8строка в US-ASCII как таковая:

$asciiString = mb_convert_encoding ($sourceString, 'US-ASCII', 'UTF-8');

Однако это не может быть преобразованием без потерь в зависимости от исходной строки символов.(Такие символы, как «é» просто исчезнут в пустоте.)

1 голос
/ 14 января 2011

Браузеры уже понимают UTF-8.Если вы хотите, чтобы они знали , что вы отправляете им UTF-8, вам нужно сообщить им .

...