Перейти к содержимому

convert_cyr_string()

Примечание: convert_cyr_string() была удалена в PHP 8.0. Это устаревшая функция, которую не следует использовать в современных приложениях на PHP. Для преобразования между кодировками используйте mb_convert_encoding() или iconv().

Функция convert_cyr_string() исторически использовалась для преобразования строки из одной устаревшей кириллической кодировки в другую. Синтаксис функции convert_cyr_string() выглядел следующим образом:

Синтаксис PHP для convert_cyr_string()

php
string convert_cyr_string ( string $str , string $from , string $to )

Функция принимала три параметра: строку для преобразования ($str), кодировку, из которой нужно преобразовать ($from), и кодировку, в которую нужно преобразовать ($to). Функция convert_cyr_string() возвращала преобразованную строку.

Ниже приведен пример использования этой функции:

Пример использования PHP convert_cyr_string()

php
<?php
$string = "Текст на русском";
$converted_string = convert_cyr_string($string, "w", "k");
echo $converted_string;
?>

В этом примере строка рассматривается как находящаяся в кодировке w (Windows-1251), которая исторически использовалась для кириллического текста. Мы преобразуем её в кодировку k (KOI8-R). Мы передаем строку, w и k в функцию convert_cyr_string(), которая возвращает преобразованную строку.

Вывод этого кода в современной среде UTF-8 будет представлять собой искаженный текст (мошибайк), поскольку необработанные байты интерпретируются заново без контекста кодировки:


console
╨Т╨╡╨║╨╕╨▓ ╨╧╨░╨╣╨▓╨╕╨▓

Как видите, функция преобразовала необработанные байты, но без соответствия кодировке окружения они не отображаются в виде читаемого кириллического текста.

Вот еще один исторический пример с использованием кодировки i (ISO 8859-5):

Как использовать PHP convert_cyr_string()?

php
<?php
$string = "Текст на русском";
$converted_string = convert_cyr_string($string, "w", "i");
echo $converted_string;
?>

В этом примере мы преобразуем строку в кодировку i. Мы передаем строку, w и i в функцию convert_cyr_string(), которая возвращает преобразованную строку.

Вывод этого кода в современной среде UTF-8 также будет содержать искаженный текст:


console
╨Т╨╡╨║╨╕╨▓ ╨╧╨░╨╣╨▓╨╕╨▓

Функция convert_cyr_string() является устаревшим инструментом, который больше не поддерживается. Современная разработка на PHP по умолчанию опирается на UTF-8, и такие устаревшие функции кодировки, как эта, являются неактуальными. Для надежного преобразования наборов символов используйте mb_convert_encoding() или iconv() с явным указанием UTF-8.

Мы надеемся, что эта статья помогла понять исторический контекст функции convert_cyr_string() в PHP. Если у вас есть вопросы или комментарии, пожалуйста, не стесняйтесь обращаться к нам.

Практика

Что делает функция PHP 'iconv', как описано в статье?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.