Пространства имён
Варианты
Действия

Многобайтовые строки с завершающим нулем

Материал из cppreference.com
< cpp‎ | string
 
 
Строки
Байтовые строки с завершающим нулем
Однобайтовые строки
Многобайтовые строки
Широкие строки
Классы
basic_string
char_traits
 
Null-завершенный многобайтовых строк
Преобразование многобайтовых / широких строк
mbsinit
Типы
mbstate_t
 

Многобайтовая строка с завершающим нулем или просто "многобайтовая строка" - это последовательность ненулевых байтов, которая завершается байтом со значением ноль (завершающий нулевой символ).

Каждый символ хранящийся в такой строке может занимать в памяти больше одного байта. Кодировка используемая для представления символов в многобайтовой строке зависит от выбранной локали: это может быть UTF-8, GB18030, EUC-JP, Shift-JIS, и т.д. К примеру, массив символов {'\xd0','\xba','\xd1','\x83','\0'} является многобайтовой строкой, содержащей "ку" в многобайтовой кодировке UTF-8: первые два байта представляют собой символ к, следующие два байта - у.

В некоторых многобайтовых кодировках любая заданная последовательность многобайтовых символов может представлять собой иные символы в зависимости от того какие байты шли до нее, это так называемый "сдвиг последовательностей". Такие кодировки больше известны как зависимые от текущего состояния: для определения каждого нового символа необходимо знать текущее состояние сдвига. Многобайтовая строка является правильной только в том случае, если она начинается и заканчивается в одинаковом состоянии сдвига: если в процессе разбора строки был встречен сдвиг, то соответствующий ему обратный сдвиг также должен присутствовать до того, как будет достигнут нулевой байт, обозначающий завершение строки. Примеры подобных кодировок: 7-битная JIS, BOCU-1 и SCSU.

Многобайтовые строки структурно-совместимы с однобайтовыми строками, завершающимися нулем, иными словами они могут быть сохранены, копированы и просмотрены с использованием тех же средств, за исключением средств подсчета символов. Если выбрана корректная локаль, функции ввода-вывода также будут поддерживать многобайтовые строки. Многобайтовые строки могут быть преобразованы в широкие строки и наоборот с помощью функций-членов std::codecvt, std::wstring_convert или с помощью следующих, зависимых от локали функций преобразования:

[править] Преобразование многобайтовых / широких строк

Заголовочный файл <cstdlib>
возвращает количество байтов в следующий символ многобайтовых
Оригинал:
returns the number of bytes in the next multibyte character
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
преобразует следующий символ многобайтовых широкого характера
Оригинал:
converts the next multibyte character to wide character
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
преобразует широкий символ в своем многобайтовых представление
Оригинал:
converts a wide character to its multibyte representation
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
преобразует узкой буквенная многобайтовых широкой строки
Оригинал:
converts a narrow multibyte character string to wide string
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
Преобразует строку широких, чтобы сузить многобайтовой строки символов
Оригинал:
converts a wide string to narrow multibyte character string
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
Заголовочный файл <cwchar>
проверяет, является ли mbstate_t объект представляет начальное состояние смену
Оригинал:
checks if the mbstate_t object represents initial shift state
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
расширяется однобайтовые узкий характер широкого характера, если это возможно
Оригинал:
widens a single-byte narrow character to wide character, if possible
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
сужает широкий характер однобайтовые узкий характер, если это возможно
Оригинал:
narrows a wide character to a single-byte narrow character, if possible
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
возвращает количество байтов в следующем многобайтового символа, данное состояние
Оригинал:
returns the number of bytes in the next multibyte character, given state
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
преобразует следующий символ многобайтовых широкого характера, данное состояние
Оригинал:
converts the next multibyte character to wide character, given state
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
преобразует широкий символ в своем многобайтовых представление, данное состояние
Оригинал:
converts a wide character to its multibyte representation, given state
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
преобразует узкой буквенная многобайтовых широкой строки, данное состояние
Оригинал:
converts a narrow multibyte character string to wide string, given state
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
Преобразует строку широких к узким многобайтовой строки символов, данное состояние
Оригинал:
converts a wide string to narrow multibyte character string, given state
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
Заголовочный файл <cuchar>
(C++11)
генерации следующего 16-битный символ из узких строку многобайтовых
Оригинал:
generate the next 16-bit wide character from a narrow multibyte string
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
(C++11)
Преобразование 16-битного широкий характер, чтобы сузить многобайтовую строку
Оригинал:
convert a 16-bit wide character to narrow multibyte string
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
(C++11)
генерации следующего 32-битный символ из узких строку многобайтовых
Оригинал:
generate the next 32-bit wide character from a narrow multibyte string
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
(C++11)
Преобразование 32-битного широкий характер, чтобы сузить многобайтовую строку
Оригинал:
convert a 32-bit wide character to narrow multibyte string
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]

[править] Типы

Заголовочный файл <cwchar>
Преобразование информации о состоянии необходимой для перебора многобайтовые строки символов
Оригинал:
conversion state information necessary to iterate multibyte character strings
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(класс) [edit]

[править] Макросы

Заголовочный файл <climits>
MB_LEN_MAX
Максимальное число байтов в многобайтовых символов
Оригинал:
maximum number of bytes in a multibyte character
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(константа-макрос) [edit]
Заголовочный файл <cstdlib>
MB_CUR_MAX
Максимальное число байтов в многобайтовых символов в текущем C locale
(макропеременной)
Оригинал:
maximum number of bytes in a multibyte character in the current C locale
(макропеременной)
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
[edit]
Заголовочный файл <cuchar>
__STDC_UTF_16__
указывает, что в функциях mbrtoc16 и c16rtomb используется кодировка UTF-16
(константа-макрос)
__STDC_UTF_32__
указывает, что в функциях mbrtoc32 и c32rtomb используется кодировка UTF-32
(константа-макрос)