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

std::codecvt

Материал из cppreference.com
< cpp‎ | locale

 
 
Локализация
Локализации и фасеты
locale
Классификация символов
Преобразования
Базовые классы фасетов
Категории фасетов
Зависящие от локализации категории фасетов
Не зависящие от локализации фасеты преобразования unicode
codecvt_utf8(C++11)
codecvt_utf16(C++11)
Локализации С
 
std::codecvt
Член функций
Оригинал:
Member functions
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
codecvt::codecvt
codecvt::~codecvt
codecvt::out
codecvt::do_out
codecvt::in
codecvt::do_in
codecvt::unshift
codecvt::do_unshift
codecvt::encoding
codecvt::do_encoding
codecvt::always_noconv
codecvt::do_always_noconv
codecvt::length
codecvt::do_length
codecvt::max_length
codecvt::do_max_length
 
Определено в заголовочном файле <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 Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
cpp/locale/codecvt basecpp/locale/locale/facetstd-codecvt-inheritance.svg
Описание изображения

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

Четыре специализации предоставляются стандартные библиотеки и осуществляются все локали объекты, созданные в C + + программ
Оригинал:
Four specializations are provided by the standard library and are implemented by all locale objects created in a C++ program:
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Заголовочный файл <locale>
std::codecvt<char, char, std::mbstate_t>
тождественное преобразование
Оригинал:
identity conversion
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
std::codecvt<char16_t, char, std::mbstate_t>
преобразования между UTF-16 и UTF-8 (начиная с C++11)
Оригинал:
conversion between UTF-16 and UTF-8 (начиная с C++11)
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
std::codecvt<char32_t, char, std::mbstate_t>
преобразования между UTF-32 и UTF-8 (начиная с C++11)
Оригинал:
conversion between UTF-32 and UTF-8 (начиная с C++11)
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
std::codecvt<wchar_t, char, std::mbstate_t>
локалей преобразования между строку широких и узких, возможно, многобайтовые, строка
Оригинал:
locale-specific conversion between wide string and narrow, possibly multibyte, string
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Член типов

Член типа
Оригинал:
Member type
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Definition
intern_type internT
extern_type externT
state_type stateT

[править] Член объектов

Имя пользователя
Оригинал:
Member name
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Type
id (статическим) std::locale::id

[править] Член функций

строит новую грань codecvt
Оригинал:
constructs a new codecvt facet
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член)
разрушает codecvt грань
Оригинал:
destructs a codecvt facet
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(protected функция-член)
Вызывает do_out
Оригинал:
invokes do_out
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]
Вызывает do_in
Оригинал:
invokes do_in
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]
Вызывает do_unshift
Оригинал:
invokes do_unshift
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]
Вызывает do_encoding
Оригинал:
invokes do_encoding
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]
Вызывает do_always_noconv
Оригинал:
invokes do_always_noconv
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]
Вызывает do_length
Оригинал:
invokes do_length
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]
Вызывает do_max_length
Оригинал:
invokes do_max_length
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(public функция-член) [edit]

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

[virtual]
преобразует строку из internT в externT, например, при записи в файл
Оригинал:
converts a string from internT to externT, such as when writing to file
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(virtual protected функция-член) [edit]
[virtual]
преобразует строку из externT в internT, например, при чтении из файла
Оригинал:
converts a string from externT to internT, such as when reading from file
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(virtual protected функция-член) [edit]
[virtual]
генерирует последовательность прекращения характер externT символов для неполного преобразования
Оригинал:
generates the termination character sequence of externT characters for incomplete conversion
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(virtual protected функция-член) [edit]
[virtual]
возвращает количество externT символы, необходимые для производства одной internT характер, если постоянная
Оригинал:
returns the number of externT characters necessary to produce one internT character, if constant
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(virtual protected функция-член) [edit]
Тесты, если грань кодирует тождественное преобразование для всех допустимых значений аргумента
Оригинал:
tests if the facet encodes an identity conversion for all valid argument values
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(virtual protected функция-член) [edit]
[virtual]
вычисляет длину externT строку, которая будет потребляться преобразования в данной internT буфера
Оригинал:
calculates the length of the externT string that would be consumed by conversion into given internT buffer
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(virtual protected функция-член) [edit]
возвращает максимальное число externT символы, которые могут быть преобразованы в единый internT характер
Оригинал:
returns the maximum number of externT characters that could be converted into a single internT character
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(virtual protected функция-член) [edit]

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

Член типа
Оригинал:
Member type
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Definition
enum result { ok, partial, error, noconv };
Незаданной типа перечисления
Оригинал:
Unscoped enumeration type
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Перечисление постоянно
Оригинал:
Enumeration constant
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Definition
ok
Преобразование была завершена без ошибок
Оригинал:
conversion was completed with no error
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
partial
Не все символы источником были преобразованы
Оригинал:
not all source characters were converted
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
error
встречается недопустимый символ
Оригинал:
encountered an invalid character
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
noconv
преобразование не требуется, вход и выход типов одинаковы
Оригинал:
no conversion required, input and output types are the same
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Пример

В следующих примерах говорится в 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 Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

#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>
N/A
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 Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон класса)
создает codecvt аспект для указанного языка
Оригинал:
creates a codecvt facet for the named locale
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон класса)
преобразования между UTF-8 и UCS2/UCS4
Оригинал:
converts between UTF-8 and UCS2/UCS4
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон класса) [edit]
преобразования между UTF-16 и UCS2/UCS4
Оригинал:
converts between UTF-16 and UCS2/UCS4
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон класса) [edit]
converts between UTF-8 and UTF-16
(шаблон класса) [edit]