Spec-Zone.ru › Hammerspoon

hs.utf8

Функции, обеспечивающие базовую поддержку кодировки UTF-8

До апгрейда интерпретатора Lua Hammerspoon до версии 5.3, поддержка UTF8 обеспечивалась включением бета-версии библиотеки utf8 Lua 5.3 в качестве модуля Hammerspoon. Это больше не требуется, но для сохранения совместимости библиотека Lua utf8 по-прежнему доступна через hs.utf8. Документация по библиотеке utf8 доступна по адресу http://www.lua.org/manual/5.3/ или в консоли Hammerspoon с помощью команды help: help.lua.utf8. Это затрагивает следующие функции и переменные:

  • hs.utf8.char - справка доступна через help.lua.utf8.char
  • hs.utf8.charPattern - справка доступна через help.lua.utf8.charpattern
  • hs.utf8.codepoint - справка доступна через help.lua.utf8.codepoint
  • hs.utf8.codes - справка доступна через help.lua.utf8.codes
  • hs.utf8.len - справка доступна через help.lua.utf8.len
  • hs.utf8.offset - справка доступна через help.lua.utf8.offset

Дополнительные функции, специфичные для Hammerspoon, которые предоставляют расширенную поддержку UTF8, документированы здесь.

Обзор API

  • Переменные - Настраиваемые значения
    • registeredKeys
  • Функции - API-вызовы, предлагаемые непосредственно расширением
    • asciiOnly
    • codepointToUTF8
    • fixUTF8
    • hexDump
    • registerCodepoint
    • registeredLabels

Документация API

Переменные

registeredKeys
Подпись hs.utf8.registeredKeys[]
Тип Переменная
Описание

Коллекция символов UTF-8, уже преобразованных из кодовых точек и доступных в виде удобных пар ключ-значение. UTF-8 печатные версии распространенных специальных символов Apple и OS X предварительно определены, и другие можно добавить с помощью hs.utf8.registerCodepoint(label, codepoint), для вашего использования.

Примечания
  • Эта таблица имеет метаметод __tostring(), что позволяет перечислить её содержимое в консоли Hammerspoon, набрав hs.utf8.registeredKeys.
  • Для соответствия hs.utf8.registeredLabels, это также можно вызвать как функцию, т.е. hs.utf8.registeredKeys["cmd"] эквивалентно hs.utf8.registeredKeys("cmd")
Источник extensions/utf8/utf8.lua строка 188

Функции

asciiOnly
Подпись hs.utf8.asciiOnly(string[, all]) -> string
Тип Функция
Описание

Возвращает предоставленную строку со всеми непечатаемыми символами ASCII, за исключением Возврата каретки, Перевода строки и Табуляции.

Параметры
  • строка - входная строка, в которой все непечатаемые символы ASCII должны быть экранированы как \x## (шестнадцатеричное число с одним байтом).
  • все - необязательный булевый параметр (по умолчанию false), указывающий, следует ли также рассматривать Возврат каретки, Перевод строки и Табуляцию как «непечатаемые»
Возвращаемое значение
  • Очищенная строка с экранированными непечатаемыми символами.
Примечания
  • Поскольку символы Юникода, находящиеся за пределами основного алфавита ASCII, являются многобайтовыми символами, любой символ UTF8 или другой символы Юникода будет разделен на отдельные байты и, вероятно, экранирован этой функцией.
  • Эта функция полезна для отображения двоичных данных в удобочитаемой форме, которая в противном случае может быть невыразима в консоли Hammerspoon или другом месте назначения. Например:
    • utf8.charpattern, содержащий регулярное выражение для соответствия допустимым кодировкам UTF8, приводит к (null) в консоли Hammerspoon, но hs.utf8.asciiOnly(utf8.charpattern) отобразит [\x00-\x7F\xC2-\xF4][\x80-\xBF]*.
Источник extensions/utf8/utf8.lua строка 296
codepointToUTF8
Подпись hs.utf8.codepointToUTF8(...) -> string
Тип Функция
Описание

Обёртка для utf8.char(...), которая гарантирует, что все кодовые точки возвращают допустимые символы UTF8.

Параметры
  • кодовые_точки - ряд числовых кодовых точек Юникода, которые должны быть преобразованы в последовательности байтов UTF-8. Если кодовая точка является строкой (и не начинается с U+, она используется в качестве ключа для поиска в hs.utf8.registeredKeys[]
Возвращаемое значение
  • Строка, содержащая последовательности байтов UTF-8, соответствующие предоставленным кодовым точкам, как объединённая строка.
Примечания
  • Допустимые значения кодовых точек находятся в диапазоне от 0x0000 до 0x10FFFF (0 – 1114111)
  • Если предоставленная кодовая точка является строкой, начинающейся с U+, то 'U+' преобразуется в '0x', чтобы Lua мог правильно обрабатывать значение как числовое.
  • Неверные кодовые точки возвращаются как символ замены Юникода (U+FFFD)
    • Это включает в себя кодовые точки за пределами диапазона, а также кодовые точки замещения Юникода (U+D800 – U+DFFF)
Источник extensions/utf8/utf8.lua строка 72
fixUTF8
Подпись hs.utf8.fixUTF8(inString[, replacementChar]) -> outString, posTable
Тип Функция
Описание

Заменяет неверные последовательности символов UTF8 в inString на replacementChar, чтобы их можно было безопасно отобразить в консоли или другом месте назначения, которое требует правильной кодировки UTF8.

Параметры
  • inString - строка символов, которая может содержать неверные последовательности байтов UTF8
  • replacementChar - необязательный параметр для замены неверных последовательностей байтов в inString. Если этот параметр не указан, используется символ замены UTF8 по умолчанию U+FFFD.
Возвращаемое значение
  • outString - содержимое inString со всеми неверными последовательностями байтов UTF8, заменёнными на replacementChar.
  • posTable - таблица индексов в outString соответствующая местоположениям, где replacementChar был использован.
Примечания
  • Эта функция является небольшой модификацией кода, найденного по адресу http://notebook.kulchenko.com/programming/fixing-malformed-utf8-in-lua.

  • Если replacementChar является многобайтовым символом (например, U+FFFD) или многосимвольной строкой, то длина строки outString будет больше длины строки inString. Позиции символов в posTable будут отражать эти новые позиции в outString.

  • Для вычисления позиции символа неверных символов в inString, используйте что-то вроде следующего:

    outString, outErrors = hs.utf8.fixUTF8(inString, replacement) inErrors = {} for i,p in ipairs(outErrors) do table.insert(inErrors, p - ((i - 1) * string.length(replacement) - 1)) end

    Где replacement — utf8.char(0xFFFD), если вы опустите его из функции hs.utf8.fixUTF8 в первой строке.

Источник extensions/utf8/utf8.lua строка 121
hexDump
Подпись hs.utf8.hexDump(inputString [, count]) -> string
Тип Функция
Описание

Возвращает шестнадцатеричный дамп предоставленной строки. Это в первую очередь полезно для просмотра точного состава двоичных данных, содержащихся в строке Lua, как отдельных байтов в целях отладки.

Параметры
  • inputString - данные, которые должны быть отображены как отдельные шестнадцатеричные байты для просмотра.
  • count - необязательный параметр, определяющий количество байтов для отображения в строке (по умолчанию 16)
Возвращаемое значение
  • строка, содержащая шестнадцатеричный дамп входной строки.
Примечания
  • Как и hs.utf8.asciiOnly, эта функция разобьёт символы Юникода на отдельные байты.
  • В качестве примера: hs.utf8.hexDump(utf8.charpattern) вернёт 00 : 5B 00 2D 7F C2 2D F4 5D 5B 80 2D BF 5D 2A : [.-..-.][.-.]*
Источник extensions/utf8/utf8.lua строка 328
registerCodepoint
Подпись hs.utf8.registerCodepoint(label, codepoint) -> string
Тип Функция
Описание

Регистрирует кодовую точку Юникода под заданным меткой как строку байтов UTF-8, на которую можно ссылаться по метке позднее в вашем коде как hs.utf8.registeredKeys[label] для удобства и читаемости.

Параметры
  • метка - строковая метка, используемая в качестве удобочитаемой ссылки при получении последовательности байтов UTF-8 для использования в других строках и функциях вывода.
  • кодовая_точка - кодовая точка Юникода в числовом или U+xxxx формате для регистрации с заданной меткой.
Возвращаемое значение
  • Возвращает последовательность байтов UTF-8 для зарегистрированной кодовой точки Юникода.
Примечания
  • Если кодовая точка метки была ранее зарегистрирована, это перезапишет предыдущее значение новым. Поскольку многие специальные ключи, которые вы можете захотеть зарегистрировать, имеют различные варианты, это позволяет легко изменять существующие предопределённые значения, чтобы они соответствовали вашим предпочтениям.
  • Возвращаемое значение — просто синтаксический сахар, и вам не нужно сохранять его локально; его можно безопасно игнорировать — последующий доступ к предварительно преобразованной кодовой точке должен быть получен как hs.utf8.registeredKeys[label] в вашем коде. Однако, выглядит хорошо, когда вызывается из консоли ☺.
Источник extensions/utf8/utf8.lua строка 169
END_OF_DOCUMENT_MARKER
registeredLabels
Подпись hs.utf8.registeredLabels(utf8char) -> string
Тип Функция
Описание

Возвращает имя метки для символа UTF8, как оно зарегистрировано в hs.utf8.registeredKeys[].

Параметры
  • utf8char — символ для поиска в hs.utf8.registeredKeys[]
Возвращаемое значение
  • Строковая метка для символа UTF8 или строка в формате «U+XXXX», если она не определена в hs.utf8.registeredKeys[], или nil, если utf8char не является допустимым символом UTF8.
Примечания
  • Для соответствия hs.utf8.registeredKeys, это также можно вызвать, как если бы это был массив: например, hs.utf8.registeredLabels(char) эквивалентно hs.utf8.registeredLabels[char]
Источник extensions/utf8/utf8.lua строка 46

© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.utf8.html

Spec-Zone.ru

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