Конвертация в другие кодировки

May 4, 2010 by admin Комментировать »

Для тех разработчиков, которые пользуются кириллическими кодировками, такими, например, как ср1251 или K0I8-R. часто приходится сталкиваться с труд­ностями при работе с данными в другой кодировке. Эта проблема может еще боль­ше обостряться при работе с XML, так как XML-расширения требуют, чтобы ки­риллические данные были представлены в кодировке UTF-8 (юникод).

В РНР 5 для решения подобных проблем можно использовать расширение iconv, которое входит в поставку по умолчанию, и функция convert_cyr_string (), которая также доступна по умолчанию, но выполняет преобразования только между кириллическими кодировками. Более подробно о названных функциях можно прочесть в официальной документации (www.php.net/manual/ ru/ref. strings. php).

Функция Convert_cyr_string()

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

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

Параметры from и to обозначают входную и выходную кодировки соответст­венно и обычно состоят из одной буквы. Буквенные обозначения кодировок приве­дены в табл. 15.4.

Таблица 15.4. Буквенные обозначения кодировок для функции convert_cyr_string()

Буква Соответствующая кодировка

к KOI8-R

W Windows-1251

i ISO-8859-5

а х-ср866

d х-ср866

m x-mac-Cyrillic

Рассмотрим пример использования функции. <?php

$koi_string = "Привет мир1";

echo convert_cyr_string($koi_string,"к","w"); ?>

В результате выполнения данного скрипта на экран будет выведена строка Привет мир!

в кодировке Windows-1251 (при условии, что до этого она была в кодировке K0I8-R)y

функция Iconv()

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

string iconv( string in_charset, string out_charset, string str)

В случае удачного завершения функция возвращает исходную строку str из ко­дировки in_charset в кодировке out_c]iarset. Рассмотрим пример использова­ния функции для конвертации строки из кодировки KOI8-R в кодировку UTF-8, например для последующего использования с XML-расширениями.

<?php

echo "<meta http-equiv= Concenc-Type’ content= text/html; charset=utf-8′>";

$koi_string = "<greeting>np4Be!r MMp!</greeting>"; echo icomw "KOI8-R","UTF-8",$koi_string);

?>

После выполнения данного кода на экране браузера появится фраза в кодировке UTF-8.

Привет мир!

При этом, если открыть вывод страницы в текстовом редакторе ("Просмотр в виде HTML"), то там будет видна строка в "кракозябрах". т.е. нечитаемых симво­лах. Например:

<ineta http-equiv=’Content-Type’ content=’text/html; charset=utf-8′> <greeting>n4H-nTn|n1я- п+пТя-!</greeting>

Это говорит о том, что строка записана в иной кодировке, чем текстовый редак­тор (и, возможно, вся операционная система), а браузер уже автоматически пока­жет читаемый вариант, так как в теге <meta> ему напрямую указывается, в какой кодировке отображать страничку.

В целом, iconvO это не только функция. Существует одноименный набор функций для работы с различными кодировками Если возникли трудности при работе с кодировками, то первым делом стоит обратить внимание на расширение iconv.

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты