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

std::codecvt_byname

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

Определено в заголовочном файле <locale>
template< class internT, class externT, class stateT >
class codecvt_byname : public std::codecvt<internT, externT, stateT>;
std::codecvt_byname является std::codecvt аспект, который инкапсулирует многобайтовых / широкий характер правил преобразования локали указано на его строительство.
Оригинал:
std::codecvt_byname is a std::codecvt facet which encapsulates multibyte/wide character conversion rules of a locale specified at its construction.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Четыре специализации осуществляется стандартной библиотеки
Оригинал:
Four specializations are provided by the standard library
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Заголовочный файл <locale>
std::codecvt_byname<char, char, std::mbstate_t>
тождественное преобразование
Оригинал:
identity conversion
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
std::codecvt_byname<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_byname<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_byname<wchar_t, char, std::mbstate_t>
локалей преобразования между строку широких и узких, возможно, многобайтовые, строка
Оригинал:
locale-specific conversion between wide string and narrow, possibly multibyte, string
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Функции-члены

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

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

(protected функция-член)

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

Member types

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

Member objects

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

Member functions

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

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

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

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

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

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

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

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

Protected member functions

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

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

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

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

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

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

(virtual protected std::codecvt функция-член) [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.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

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

Этот пример демонстрирует чтение GB18030-закодированный файл, используя codecvt грани с GB18030-знать язык
Оригинал:
This example demonstrates reading a GB18030-encoded file using the codecvt facet from a GB18030-aware locale
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

#include <iostream>
#include <fstream>
#include <string>
#include <locale>
int main()
{
    // GB18030 narrow multibyte encoding
    std::ofstream("text.txt") << "\x7a"              // letter 'z', U+007a
                                 "\x81\x30\x89\x38"  // letter 'ß', U+00df
                                 "\xcb\xae"          // CJK ideogram '水' (water), U+6c34
                                 "\x94\x32\xbc\x35"; // musical sign '𝄋' (segno), U+1d10b
    std::wifstream fin("text.txt");
    fin.imbue(std::locale(fin.getloc(),
              new std::codecvt_byname<wchar_t, char, std::mbstate_t>("zh_CN.gb18030")));
    for(wchar_t c; fin.get(c); )
        std::cout << std::hex << std::showbase << c << '\n';
}

Вывод:

0x7a
0xdf
0x6c34
0x1d10b

[править] См. также

новообращенные между кодировками, в том числе UTF-8, UTF-16, UTF-32
Оригинал:
converts between character encodings, including UTF-8, UTF-16, UTF-32
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон класса) [edit]