Spec-Zone.ru › Tcl/Tk

кодировка

ИМЯ
кодировка — Управление кодировками
СИНТАКСИС
ВВЕДЕНИЕ
ОПИСАНИЕ
кодировка convertfrom ?кодировка? данные
кодировка convertto ?кодировка? строка
кодировка dirs ?список_каталогов?
кодировка names
кодировка system ?кодировка?
ПРИМЕР
СМОТРИТЕ ТАКЖЕ
КЛЮЧЕВЫЕ СЛОВА

Имя

кодировка — Управление кодировками

Синтаксис

кодировка опция ?арг арг ...?

Введение

Строки в Tcl логически представляют собой последовательность 16-битных символов Unicode. Эти строки в памяти представляются последовательностью байтов, которые могут быть в одной из нескольких кодировок: модифицированный UTF-8 (который использует от 1 до 3 байтов на символ), 16-битный «Unicode» (который использует 2 байта на символ с порядком байтов, зависящим от архитектуры хоста) и двоичный (который использует один байт на символ, но обрабатывает только ограниченный набор символов). Tcl не гарантирует, что для одной и той же строки всегда будет использоваться одна и та же кодировка.

Разные операционные системы или приложения могут генерировать строки в других кодировках, таких как Shift-JIS. Команда encoding помогает устранить разрыв между Unicode и этими другими форматами.

Описание

Выполняет одно из нескольких операций, связанных с кодировкой, в зависимости от опции. Допустимые опции:
кодировка convertfrom ?кодировка? данные
Преобразовать данные в Unicode из указанной кодировки. Символы в данных обрабатываются как двоичные данные, где нижние 8 бит каждого символа берутся как один байт. Результирующая последовательность байтов обрабатывается как строка в указанной кодировке. Если кодировка не указана, используется текущая системная кодировка.
кодировка convertto ?кодировка? строка
Преобразовать строку из Unicode в указанную кодировку. Результатом является последовательность байтов, представляющая преобразованную строку. Каждый байт хранится в нижних 8 битах символа Unicode (фактически, полученная строка является двоичной строкой с точки зрения Tcl, по крайней мере, изначально). Если кодировка не указана, используется текущая системная кодировка.
кодировка dirs ?список_каталогов?
Tcl может загружать файлы данных кодировки из файловой системы, которые описывают дополнительные кодировки для работы с ними. Эта команда устанавливает путь поиска для файлов данных кодировки *.enc в список каталогов список_каталогов. Если список_каталогов опущен, команда возвращает текущий список каталогов, составляющих путь поиска. Ошибка возникает, если список_каталогов не является допустимым списком. Если при поиске файла данных кодировки какой-либо элемент в список_каталогов не ссылается на читаемый, доступный для поиска каталог, этот элемент игнорируется.
кодировка names
Возвращает список, содержащий имена всех доступных кодировок. Кодировки «utf-8» и «iso8859-1» гарантированно присутствуют в списке.
кодировка system ?кодировка?
Установить системную кодировку в кодировка. Если кодировка опущена, команда возвращает текущую системную кодировку. Системная кодировка используется всякий раз, когда Tcl передает строки системным вызовам.

Пример

Обычно файлы скриптов пишутся с помощью текстового редактора, который генерирует вывод в кодировке euc-jp, представляющей символы ASCII как одиночные байты, а японские символы — как два байта. Это упрощает встраивание литерных строк, соответствующих символам, отличным от ASCII, просто введя строки в скрипт. Однако, поскольку команда source всегда читает файлы с использованием текущей системной кодировки, Tcl будет корректно обрабатывать такие файлы только в том случае, если кодировка, использованная для записи файла, совпадает. Это, как правило, неверно в международной среде. Например, если такой файл был загружен в Северной Америке (где обычно используется ISO8859-1), каждый байт в файле рассматривался бы как отдельный символ, который отображается на страницу 00 в Unicode. Полученные строки Tcl не будут содержать ожидаемых японских символов. Вместо этого они будут содержать последовательность символов Latin-1, соответствующих байтам исходной строки. Команда encoding может использоваться для преобразования этой строки в ожидаемые японские символы Unicode. Например,
set s [encoding convertfrom euc-jp "\xA4\xCF"]

вернет строку Unicode «\u306F», которая представляет собой слоговую японскую букву HA.

См. также

Tcl_GetEncoding

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/encoding.htm

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/encoding.htm

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API