Выбор представления
Иногда полезно рассматривать существующий буфер или строку как многобайтовую, когда она была однобайтовой, или наоборот.
- Функция: set-buffer-multibyte multibyte
-
Установить тип представления текущего буфера. Если multibyte отлично от
nil, буфер становится многобайтовым. Если multibyte равноnil, буфер становится однобайтовым.Эта функция оставляет содержимое буфера неизменным, если рассматривать его как последовательность байтов. Вследствие этого она может изменить содержимое, рассматриваемое как символы; например, последовательность из трёх байтов, которая обрабатывается как один символ в многобайтовом представлении, будет считаться тремя символами в однобайтовом представлении. Восьмибитные символы, представляющие сырые байты, являются исключением. Они представлены одним байтом в однобайтовом буфере, но когда буфер устанавливается в многобайтовый режим, они преобразуются в двухбайтовые последовательности, и наоборот.
Эта функция устанавливает
enable-multibyte-charactersдля записи используемого представления. Она также корректирует различные данные в буфере (включая наложения, свойства текста и маркеры) таким образом, чтобы они охватывали тот же текст, что и раньше.Эта функция сигнализирует об ошибке, если буфер сужается, так как сужение может произойти посредине последовательностей многобайтовых символов.
Эта функция также сигнализирует об ошибке, если буфер является косвенным буфером. Косвенный буфер всегда наследует представление своего базового буфера.
- Функция: string-as-unibyte string
Если string уже является однобайтовой строкой, эта функция возвращает саму string. В противном случае она возвращает новую строку с теми же байтами, что и string, но обрабатывает каждый байт как отдельный символ (так что значение может иметь больше символов, чем string); как исключение, каждый восьмибитный символ, представляющий сырой байт, преобразуется в один байт. Созданная строка не содержит свойств текста.
- Функция: string-as-multibyte string
Если string является многобайтовой строкой, эта функция возвращает саму string. В противном случае она возвращает новую строку с теми же байтами, что и string, но обрабатывает каждую многобайтовую последовательность как один символ. Это означает, что значение может иметь меньше символов, чем string. Если последовательность байтов в string недействительна как многобайтовое представление одного символа, каждый байт в последовательности обрабатывается как сырой 8-битный байт. Созданная строка не содержит свойств текста.
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/Selecting-a-Representation.html