кодировка
-
ИМЯ
- кодировка — Управление кодировками
- СИНТАКСИС
- ВВЕДЕНИЕ
- ОПИСАНИЕ
-
кодировка convertfrom ?кодировка? данные
- кодировка convertto ?кодировка? строка
- кодировка dirs ?список_каталогов?
- кодировка names
- кодировка system ?кодировка?
- кодировка convertto ?кодировка? строка
Имя
кодировка — Управление кодировкамиСинтаксис
кодировка опция ?арг арг ...?Введение
Строки в 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