ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Кодирование и декодирование. Часть Двадцать Вторая.


28-01-2015

12.9. Кодирование с учетом кодировки
Исторически сложилось так, что в компьютерах текстовые данные представлялись в виде символьных строк. Каждый символ является одним байтом, который позволяет хранить до 256 различных символов. Это более чем достаточно для английского языка и охватывает почти все европейские языки. Азиатские языки никак не укладываются в рамки 256 символов. Для того чтобы вместить более широкий диапазон символов, было найдено решение - мультибайтовая кодировка. В таких кодировках для отображения одного визуального символа вместо одного байта используется несколько байтов.
Сценарии PHP написаны в стандартной однобайтовой кодировке ASCII, но существует возможность включать в сценарий строки мультибайтового текста. К сожалению, функции манипулирования текстами языка PHP предполагают работу с однобитовыми кодировками. Строка, кодированная с использованием двух байтов на символ, для функции strlen оказывается вдвое длиннее, чем при отображении. Решением является расширение, позволяющее работать с мультибайтовыми строками.
Мультибайтовую поддержку в PHP добавили Рю Хирокава (Rui Hirokawa) и Цукада Такуя (Tsukada Takuya). 
string iconv(string from, string to, string text)
Функция iconv (листинг 12.86) преобразует строку из одной кодировки в другую. Эта функция становится доступной при наличии расширения iconv, которое включает также дескриптор буфера вывода (см. главу 8, "Браузер ввода-вывода").

Листинг 12.86. Функция iconv

<?php
print(iconv("ISO-88 59-1","ISO-8 859-15", "Core PHP Programming"));
?>

string mb_convert_case(string text, integer mode, string encoding)
Функция mb_convert_case (листинг 12.87) предназначена для замены регистра букв строки, переданной аргументом text. При этом используются режимы, описанные в табл. 12.11. Необязательный аргумент encoding отменяет стандартную кодировку.
В отличие от привычных функций наподобие strtolower эта функция "понимает", как меняется регистр букв с диакритическими знаками. Кроме того, можно воспользоваться функциями mb_strtolower и mb_strtoupper.
Кодирование и декодирование
j Листинг 12.87. Функция mb_convert_case_
<?php
$text = "Jedes Jahr PHP gewinnt GroBere Popularitat!"; print(mb_convert_case($text, MB_CASE_LOWER) . '<br>'); print(mb_convert_case($text, MB_CASE_TITLE) . '<br>'); print(mb_convert_case($text, MB_CASE_UPPER) . '<br>');
?>

string mb_convert_encoding(string text, string target, array source)
Функция mb_convert_encoding преобразует строку из одной кодировки в другую. Необязательный третий аргумент по умолчанию задает внутреннюю кодировку PHP. С другой стороны, в этом аргументе можно задать один или несколько идентификаторов кодов, разделенных запятыми. В качестве общей ссылки на кодировки ASCII, JIS, UTF-8, EUC-JP и SJIS можно задавать аргумент auto. Кроме того, эта функция позволяет в качестве аргумента source задавать массив. string mb_convert_kana(string text, string option, array encoding)
Функция mb_convert_kana транслирует японские тексты между различными ал­фавитами, используемыми в японском языке. Процессом трансляции управляет аргумент option. Возможные варианты приведены в табл. 12.12. По умолчанию этот параметр равен KV. Необязательный аргумент source устанавливает кодировку, использованную с исходным текстом. По умолчанию устанавливает кодировка, принятая PHP по умолчанию.
Кодирование и декодирование

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Кодирование и декодирование. Часть Двадцать Первая. PHP. Кодирование и декодирование. Часть Двадцать Третья.