Наборы символов
Набор символов (или charset) в Emacs — это множество символов, где каждому символу присвоен числовой код. (Стандарт Unicode называет это кодированным набором символов.) Каждый набор символов Emacs имеет имя, которое является символом. Один символ может принадлежать любому количеству различных наборов символов, но его код будет отличаться в каждом наборе. Примеры наборов символов включают ascii, iso-8859-1, greek-iso8859-7, и windows-1255. Код символа в наборе символов обычно отличается от его кода в буферах и строках Emacs.
Emacs определяет несколько специальных наборов символов. Набор символов unicode включает все символы, чьи коды в Emacs находятся в диапазоне 0..#x10FFFF. Набор символов emacs включает все символы ASCII и не-ASCII символы. Наконец, набор символов eight-bit включает 8-битные сырые байты; Emacs использует его для представления сырых байтов, встречающихся в тексте.
- Функция: charsetp объект
Возвращает
t, если объект — это символ, обозначающий набор символов,nilв противном случае.
- Переменная: charset-list
Значение — это список всех определённых имён наборов символов.
- Функция: charset-priority-list &optional highestp
Эта функция возвращает список всех определённых наборов символов, упорядоченных по приоритету. Если highestp — не
nil, функция возвращает единственный набор символов наивысшего приоритета.
- Функция: set-charset-priority &rest charsets
Эта функция делает charsets наборами символов наивысшего приоритета.
- Функция: char-charset символ &optional restriction
-
Эта функция возвращает имя набора символов наивысшего приоритета, к которому принадлежит символ. ASCII-символы являются исключением: для них эта функция всегда возвращает
ascii.Если restriction — не
nil, он должен быть списком наборов символов для поиска. В качестве альтернативы, он может быть кодировочной системой, в этом случае возвращаемый набор символов должен поддерживаться этой кодировочной системой (см. Кодировочные системы).
- Функция: charset-plist charset
Эта функция возвращает список свойств набора символов charset. Хотя charset — это символ, это не то же самое, что список свойств этого символа. Свойства набора символов включают важную информацию о наборе символов, например, его строку документации, короткое имя и т. д.
- Функция: put-charset-property charset propname value
Эта функция устанавливает свойство propname набора символов charset в заданное значение value.
- Функция: get-charset-property charset propname
Эта функция возвращает значение свойства charset с именем propname.
- Команда: list-charset-chars charset
Эта команда отображает список символов в наборе символов charset.
Emacs может преобразовывать между своим внутренним представлением символа и кодом символа в конкретном наборе символов. Следующие две функции поддерживают эти преобразования.
- Функция: decode-char charset code-point
-
Эта функция декодирует символ, которому присвоен code-point в charset, в соответствующий символ Emacs и возвращает его. Если charset не содержит символа с этим кодом, значение равно
nil.Для обратной совместимости, если code-point не помещается в целочисленную переменную Lisp (см. most-positive-fixnum), он может быть указан как cons-ячейка
(high . low), где low — нижние 16 бит значения, а high — верхние 16 бит. Это использование устаревает.
- Функция: encode-char char charset
Эта функция возвращает код символа char в наборе символов charset. Если charset не имеет кода для char, значение равно
nil.
Следующая функция полезна для применения определённой функции ко всем или части символов в наборе символов:
- Функция: map-charset-chars function charset &optional arg from-code to-code
-
Вызовите function для символов в charset. function вызывается с двумя аргументами. Первый — cons-ячейка
(from . to), где from и to указывают диапазон символов в charset. Второй аргумент, передаваемый function, — arg илиnil, если arg опущено.По умолчанию диапазон кодов, передаваемых function, включает все символы в charset, но необязательные аргументы from-code и to-code ограничивают его диапазоном символов между этими двумя кодами в charset. Если какой-либо из них равен
nil, он по умолчанию устанавливается в первый или последний код символа в charset соответственно. Обратите внимание, что from-code и to-code — это коды символов в charset, а не коды символов в Emacs; в отличие от этого, значения from и to в передаваемой cons-ячейке в function являются кодами символов Emacs. Эти коды символов Emacs — это либо коды Unicode, либо внутренние коды символов Emacs, которые расширяют Unicode и выходят за пределы диапазона Unicode0..#x10FFFF(см. Представления текста). Последнее случается редко, с устаревшими наборами символов CJK для кодов в charset, которые указывают символы, ещё не объединённые с Unicode.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Character-Sets.html