Инструменты пользователя

Инструменты сайта


limb3_2007_2:ru:packages:i18n:charset

Работа с UTF-8 кодировками. UTF-8 драйвера.

Важно:

Для работы с мультибайтовым контентом в Limb есть набор функций, например, _strlen(), _ltrim(), _rtrim(), _strtolower() и т.д. То есть название оригинальной функции для работы со строками с префиксом в виде нижнего подчеркивания. Список этих функций находится LPKG_I18N_DIR/src/charset/strings.inc.php.

Реализация этих функций делегируется объекту - драйверу, которых хранится в $GLOBALS['STRINGS_DRIVER']. По-умолчанию используется один из UTF-8 драйверов. Автоматическое подключение того или иного драйвера осуществляется в скрипте LPKG_I18N_DIR/src/charset/utf8.inc.php. Вызов utf8.inc.php производится в LPKG_I18N_DIR/package.php, который подключается при активизации пакета.

По-умолчанию в качества мультибайтового драйвера подключается драйвер lmbUTF8MbstringDriver на основе Mbstring расширения. Если данное расширение не подключено, тогда используется базовый lmbUTF8BaseDriver. Доступен также lmbUTF8IconvDriver, работающий на основе функций расширения Iconv.

Исталляция мульбайтового драйвера осуществляется путем вызова функции installStringsDriver и передачей ей в качестве параметра объекта-драйвера, например:

installStringsDriver(new lmbUTF8IconvDriver());

Подключение нового мультибайтового драйвера осуществляется после вызова функции loadPackagesInfo() (обычно она находится в файле setup.php Limb-based приложения).

Функции для работы с мультибайтовыми строками используются в фильтрах пакета I18N.

Для удобства еревода контента из кодировки win1251 в UTF-8 и наоборот есть дополнительный функции (находятся также в utf8.inc.php):

  • win1251_to_utf8($str)
  • utf8_to_win1251($str)

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
  ____   __  ___   __ __   _  __  __  __
 /_  /  /  |/  /  / //_/  / |/ / / / / /
  / /_ / /|_/ /  / ,<    /    / / /_/ / 
 /___//_/  /_/  /_/|_|  /_/|_/  \____/
 
limb3_2007_2/ru/packages/i18n/charset.txt · Последнее изменение: 2010/11/10 10:02 — 127.0.0.1