◐ Shell
clean mode source ↗

std::codecvt — cppreference.com

Материал из cppreference.com

<metanoindex/>

<tbody> </tbody>

Определено в заголовочном файле <locale>

template< class InternT, class ExternT, class State > class codecvt;

Класс std::codecvt инкапсулирует преобразования символьных строк, в том числе широкий и многобайтовые, из одной кодировки в другую. Все файловые операции ввода / вывода осуществляется через std::basic_fstream<CharT> использовать std::codecvt<CharT, char, std::mbstate_t> аспект языка проникнут в потоке.

Оригинал:

Class std::codecvt encapsulates conversion of character strings, including wide and multibyte, from one encoding to another. All file I/O operations performed through std::basic_fstream<CharT> use the std::codecvt<CharT, char, std::mbstate_t> facet of the locale imbued in the stream.

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

cpp/locale/codecvt basecpp/locale/locale/facet

Диаграмма наследования

Четыре специализации предоставляются стандартные библиотеки и осуществляются все локали объекты, созданные в C + + программ

Оригинал:

Four specializations are provided by the standard library and are implemented by all locale objects created in a C++ program:

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Определены в заголовочном файле <locale>

std::codecvt<char, char, std::mbstate_t>

тождественное преобразование

Оригинал:

identity conversion

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

std::codecvt<char16_t, char, std::mbstate_t>

преобразования между UTF-16 и UTF-8 (начиная с C++11)

Оригинал:

conversion between UTF-16 and UTF-8 (начиная с C++11)

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

std::codecvt<char32_t, char, std::mbstate_t>

преобразования между UTF-32 и UTF-8 (начиная с C++11)

Оригинал:

conversion between UTF-32 and UTF-8 (начиная с C++11)

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

std::codecvt<wchar_t, char, std::mbstate_t>

локалей преобразования между строку широких и узких, возможно, многобайтовые, строка

Оригинал:

locale-specific conversion between wide string and narrow, possibly multibyte, string

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Типы-члены

Тип члена Определение
intern_type internT
extern_type externT
state_type stateT

Член объектов

Имя пользователя

Оригинал:

Member name

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Type
id (статическим) std::locale::id

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

строит новую грань codecvt

Оригинал:

constructs a new codecvt facet

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(public функция-элемент)

разрушает codecvt грань

Оригинал:

destructs a codecvt facet

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(protected функция-элемент)

Вызывает do_out

Оригинал:

invokes do_out

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(public функция-элемент) [править]

Вызывает do_in

Оригинал:

invokes do_in

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(public функция-элемент) [править]

Вызывает do_unshift

Оригинал:

invokes do_unshift

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(public функция-элемент) [править]

Вызывает do_encoding

Оригинал:

invokes do_encoding

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(public функция-элемент) [править]

Вызывает do_always_noconv

Оригинал:

invokes do_always_noconv

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(public функция-элемент) [править]

Вызывает do_length

Оригинал:

invokes do_length

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(public функция-элемент) [править]

Вызывает do_max_length

Оригинал:

invokes do_max_length

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(public функция-элемент) [править]

Охраняемые функций-членов

[virtual]

преобразует строку из internT в externT, например, при записи в файл

Оригинал:

converts a string from internT to externT, such as when writing to file

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(virtual protected функция-элемент) [править]

[virtual]

преобразует строку из externT в internT, например, при чтении из файла

Оригинал:

converts a string from externT to internT, such as when reading from file

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(virtual protected функция-элемент) [править]

[virtual]

генерирует последовательность прекращения характер externT символов для неполного преобразования

Оригинал:

generates the termination character sequence of externT characters for incomplete conversion

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(virtual protected функция-элемент) [править]

[virtual]

возвращает количество externT символы, необходимые для производства одной internT характер, если постоянная

Оригинал:

returns the number of externT characters necessary to produce one internT character, if constant

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(virtual protected функция-элемент) [править]

Тесты, если грань кодирует тождественное преобразование для всех допустимых значений аргумента

Оригинал:

tests if the facet encodes an identity conversion for all valid argument values

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(virtual protected функция-элемент) [править]

[virtual]

вычисляет длину externT строку, которая будет потребляться преобразования в данной internT буфера

Оригинал:

calculates the length of the externT string that would be consumed by conversion into given internT buffer

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(virtual protected функция-элемент) [править]

возвращает максимальное число externT символы, которые могут быть преобразованы в единый internT характер

Оригинал:

returns the maximum number of externT characters that could be converted into a single internT character

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(virtual protected функция-элемент) [править]

Унаследован от std::codecvt_base

Тип члена Определение
enum result { ok, partial, error, noconv };

Незаданной типа перечисления

Оригинал:

Unscoped enumeration type

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Перечисление постоянно

Оригинал:

Enumeration constant

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Definition
ok

Преобразование была завершена без ошибок

Оригинал:

conversion was completed with no error

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

partial

Не все символы источником были преобразованы

Оригинал:

not all source characters were converted

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

error

встречается недопустимый символ

Оригинал:

encountered an invalid character

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

noconv

преобразование не требуется, вход и выход типов одинаковы

Оригинал:

no conversion required, input and output types are the same

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Пример

В следующих примерах говорится в UTF-8 файл, используя язык, который реализует UTF-8 преобразование в codecvt <wchar_t, char, mbstate_t>

Оригинал:

The following examples reads a UTF-8 file using a locale which implements UTF-8 conversion in codecvt<wchar_t, char, mbstate_t>

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

#include <iostream>
#include <fstream>
#include <string>
#include <locale>
#include <iomanip>
int main()
{
    // UTF-8 narrow multibyte encoding
    std::ofstream("text.txt") << u8"z\u00df\u6c34\U0001d10b"; // or u8"zß水𝄋"
                                           // or "\x7a\xc3\x9f\xe6\xb0\xb4\xf0\x9d\x84\x8b";
    std::wifstream fin("text.txt");
    fin.imbue(std::locale("en_US.UTF-8")); // this locale's codecvt<wchar_t, char, mbstate_t>
                                           // converts UTF-8 to UCS4
    std::cout << "The UTF-8 file contains the following wide characters: \n";
    for(wchar_t c; fin >> c; )
        std::cout << "U+" << std::hex << std::setw(4) << std::setfill('0') << c << '\n';
}

Вывод:

The UTF-8 file contains the following wide characters:
U+007a
U+00df
U+6c34
U+1d10b

См. также

Character
conversions
narrow multibyte
(char)
UTF-8
(char)
UTF-16
(char16_t)
UTF-16 mbrtoc16 / c16rtomb codecvt<char16_t, char, mbstate_t>
codecvt_utf8_utf16<char16_t>
codecvt_utf8_utf16<char32_t>
codecvt_utf8_utf16<wchar_t>
Н/Д
UCS2 Нет codecvt_utf8<char16_t> codecvt_utf16<char16_t>
UTF-32/UCS4
(char32_t)
mbrtoc32 / c32rtomb codecvt<char32_t, char, mbstate_t>
codecvt_utf8<char32_t>
codecvt_utf16<char32_t>
UCS2/UCS4
(wchar_t)
Нет codecvt_utf8<wchar_t> codecvt_utf16<wchar_t>
wide
(wchar_t)
codecvt<wchar_t, char, mbstate_t>
mbsrtowcs / wcsrtombs
Нет Нет

определяет ошибки преобразования символов

Оригинал:

defines character conversion errors

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(шаблон класса)

создает codecvt аспект для указанного языка

Оригинал:

creates a codecvt facet for the named locale

Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.


(шаблон класса)

(C++11)(устарело в C++17)

конвертирует между UTF-8 и UCS-2/UCS-4
(шаблон класса) [править]

(C++11)(устарело в C++17)

конвертирует между UTF-16 и UCS-2/UCS-4
(шаблон класса) [править]

(C++11)(устарело в C++17)

конвертирует между UTF-8 и UTF-16
(шаблон класса) [править]