iconv
(PHP 4 >= 4.0.5, PHP 5, PHP 7)
iconv — Преобразование строки в требуемую кодировку
Описание
$in_charset
, string $out_charset
, string $str
)
Преобразует набор символов строки
str
из кодировки in_charset
в out_charset
.
Список параметров
-
in_charset
-
Кодировка входной строки.
-
out_charset
-
Требуемая на выходе кодировка.
Если добавить к
out_charset
строку //TRANSLIT, включается режим транслитерации. Это значит, что в случае, если символ не может быть представлен в требуемой кодировке, он будет заменен на один или несколько нескольких наиболее близких по внешнему виду символов. Если добавить строку //IGNORE, то символы, которые не могут быть представлены в требуемой кодировке, будут удалены. В случае отсутствия вышеуказанных параметров будет сгенерирована ошибка уровняE_NOTICE
, а функция вернетFALSE
.ПредостережениеКак будет работат //TRANSLIT и будет ли вообще, зависит от системной реализации iconv() (
ICONV_IMPL
). Известны некоторые реализации, которые просто игнорируют //TRANSLIT, так что конвертация для символов некорректных дляout_charset
скорее всего закончится ошибкой. -
str
-
Строка, которую необходимо преобразовать.
Возвращаемые значения
Возвращает преобразованную строку или FALSE
в случае возникновения ошибки.
Список изменений
Версия | Описание |
---|---|
5.4.0 |
Начиная с этой версии, функция возвращает FALSE на некорректных символах,
только если в выходной кодировке не указан //IGNORE.
До этого функция возвращала часть строки.
|
Примеры
Пример #1 Пример использования iconv()
<?php
$text = "Это символ евро - '€'.";
echo 'Исходная строка : ', $text, PHP_EOL;
echo 'С добавлением TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo 'С добавлением IGNORE : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo 'Обычное преобразование : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;
?>
Результатом выполнения данного примера будет что-то подобное:
Исходная строка : Это символ евро - '€'. С добавлением TRANSLIT : Это символ евро - 'EUR'. С добавлением IGNORE :Это символ евро - ''. Обычное преобразование : Notice: iconv(): Detected an illegal character in input string in .\iconv-example.php on line 7