Иногда полезно рассмотреть существующий буфер или строку как многобайтовую, если она была однобайтовой, или наоборот.
Устанавливает тип представления текущего буфера. Если multibyte не равен nil, буфер становится многобайтовым. Если multibyte равен nil, буфер становится однобайтовым.
Эта функция оставляет содержимое буфера без изменений при просмотре как последовательность байтов. Следовательно, она может изменить содержимое при просмотре как символы; например, последовательность из трех байтов, рассматриваемая как один символ в многобайтовом представлении, будет считаться тремя символами в однобайтовом представлении. Исключение составляют восьмибитные символы, представляющие необработанные байты. Они представлены одним байтом в однобайтовом буфере, но при установке буфера в многобайтовый они преобразуются в двухбайтовые последовательности, и наоборот.
Эта функция устанавливает enable-multibyte-characters для записи используемого представления. Она также корректирует различные данные в буфере (включая наложения, свойства текста и маркеры), чтобы они охватывали тот же текст, что и раньше.
Эта функция сигнализирует об ошибке, если буфер сужается, поскольку сужение могло произойти в середине многобайтовых последовательностей символов.
Эта функция также сигнализирует об ошибке, если буфер является косвенным буфером. Косвенный буфер всегда наследует представление своего базового буфера.
Следующие две функции устарели и будут удалены в будущей версии Emacs; вместо них используйте encode-coding-string.
Если string уже является однобайтовой строкой, эта функция возвращает саму string. В противном случае она возвращает новую строку с теми же байтами, что и в string, но рассматривая каждый байт как отдельный символ (так что значение может содержать больше символов, чем string); в качестве исключения каждый восьмибитный символ, представляющий необработанный байт, преобразуется в один байт. В новой строке нет свойств текста.
Если string является многобайтовой строкой, эта функция возвращает саму string. В противном случае она возвращает новую строку с теми же байтами, что и в string, но рассматривая каждую многобайтовую последовательность как один символ. Это означает, что значение может содержать меньше символов, чем string. Если последовательность байтов в string недействительна как многобайтовое представление одного символа, каждый байт в последовательности рассматривается как необработанный 8-битный байт. В новой строке нет свойств текста.