Namespaces
Variants

std:: wstring_convert

From cppreference.net
Определено в заголовочном файле <locale>
template <

class Codecvt,
class Elem = wchar_t ,
class Wide_alloc = std:: allocator < Elem > ,
class Byte_alloc = std:: allocator < char >

> class wstring_convert ;
(начиная с C++11)
(устарело в C++17)
(удалено в C++26)

Шаблон класса std::wstring_convert выполняет преобразования между байтовой строкой std::string и широкой строкой std:: basic_string < Elem > , используя отдельный фасет преобразования кодировки Codecvt . std::wstring_convert принимает на себя владение фасетом преобразования и не может использовать фасет, управляемый локалью.

Стандартные фацеты, подходящие для использования с std::wstring_convert — это std::codecvt_utf8 для преобразований UTF-8/UCS-2 и UTF-8/UCS-4, и std::codecvt_utf8_utf16 для преобразований UTF-8/UTF-16.

Содержание

Вложенные типы

Тип Определение
byte_string std:: basic_string < char , std:: char_traits < char > , Byte_alloc >
wide_string std:: basic_string < Elem, std:: char_traits < Elem > , Wide_alloc >
state_type typename Codecvt :: state_type
int_type typename wide_string :: traits_type :: int_type

Члены данных

Член Описание
byte_string byte_err_string байтовая строка для отображения при ошибках
( объект-член только для демонстрации* )
wide_string wide_err_string расширенная строка для отображения при ошибках
( объект-член только для демонстрации* )
Codecvt * cvtptr указатель на выделенный объект преобразования
( объект-член только для демонстрации* )
state_type cvtstate объект состояния преобразования
( объект-член только для демонстрации* )
std:: size_t cvtcount счетчик преобразований
( объект-член только для демонстрации* )

Функции-члены

создает новый wstring_convert
(публичная функция-член)
operator=
оператор присваивания копированием удален
(публичная функция-член)
уничтожает wstring_convert и его фасет преобразования
(публичная функция-член)
преобразует байтовую строку в широкую строку
(публичная функция-член)
преобразует широкую строку в байтовую строку
(публичная функция-член)
возвращает количество успешно преобразованных символов
(публичная функция-член)
возвращает текущее состояние преобразования
(публичная функция-член)

Смотрите также

Преобразования символов
Многобайтовые, определенные локализацией
(UTF-8, GB18030)
UTF-8
UTF-16
UTF-16 mbrtoc16 / c16rtomb (с DR488 из C11)

codecvt < char16_t , char ,mbstate_t >
codecvt_utf8_utf16 < char16_t >
codecvt_utf8_utf16 < char32_t >
codecvt_utf8_utf16 < wchar_t >

Н/П
UCS-2 c16rtomb (без DR488 из C11) codecvt_utf8 < char16_t > codecvt_utf16 < char16_t >
UTF-32

mbrtoc32 / c32rtomb

codecvt < char32_t , char ,mbstate_t >
codecvt_utf8 < char32_t >

codecvt_utf16 < char32_t >

Системный wchar_t :

UTF-32 (не-Windows)
UCS-2 (Windows)

mbsrtowcs / wcsrtombs
use_facet < codecvt
< wchar_t , char ,mbstate_t >> ( locale )

codecvt_utf8 < wchar_t > codecvt_utf16 < wchar_t >
(C++11) (deprecated in C++17) (removed in C++26)
выполняет преобразование между буфером байтового потока и буфером широкого потока
(шаблон класса)
(C++11) (deprecated in C++17) (removed in C++26)
преобразует между UTF-8 и UCS-2/UCS-4
(шаблон класса)
(C++11) (deprecated in C++17) (removed in C++26)
преобразует между UTF-8 и UTF-16
(шаблон класса)