std::codecvt_byname
Материал из cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Заголовочный файл <locale>
|
||
| template< class internT, class externT, class stateT > class codecvt_byname : public std::codecvt<internT, externT, stateT>; |
||
std::codecvt_byname является std::codecvt аспект, который инкапсулирует многобайтовых / широкий характер правил преобразования локали указано на его строительство.
Original:
std::codecvt_byname is a std::codecvt facet which encapsulates multibyte/wide character conversion rules of a locale specified at its construction.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Четыре специализации осуществляется стандартной библиотеки
Original:
Four specializations are provided by the standard library
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
| Определено в файле <locale>
| |
| std::codecvt_byname<char, char, std::mbstate_t> | тождественное преобразование
Original: identity conversion The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| std::codecvt_byname<char16_t, char, std::mbstate_t> | преобразования между UTF-16 и UTF-8 (начиная с C++11)
Original: conversion between UTF-16 and UTF-8 (начиная с C++11) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| std::codecvt_byname<char32_t, char, std::mbstate_t> | преобразования между UTF-32 и UTF-8 (начиная с C++11)
Original: conversion between UTF-32 and UTF-8 (начиная с C++11) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| std::codecvt_byname<wchar_t, char, std::mbstate_t> | локалей преобразования между строку широких и узких, возможно, многобайтовые, строка
Original: locale-specific conversion between wide string and narrow, possibly multibyte, string The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Содержание |
[править] Член функций
| строит новую грань codecvt_byname Original: constructs a new codecvt_byname facet The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| разрушает codecvt_byname грань Original: destructs a codecvt_byname facet The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (protected функция-член) | |
Унаследован от std::codecvt
Member types
| Член типа
Original: Member type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
intern_type
|
internT
|
extern_type
|
externT
|
state_type
|
stateT
|
Member objects
| Имя пользователя
Original: Member name The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Type |
id (статическим)
|
std::locale::id |
Member functions
| Вызывает do_out Original: invokes do_out The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член std::codecvt)
| |
| Вызывает do_in Original: invokes do_in The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член std::codecvt)
| |
| Вызывает do_unshift Original: invokes do_unshift The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член std::codecvt)
| |
| Вызывает do_encoding Original: invokes do_encoding The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член std::codecvt)
| |
| Вызывает do_always_noconv Original: invokes do_always_noconv The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член std::codecvt)
| |
| Вызывает do_length Original: invokes do_length The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член std::codecvt)
| |
| Вызывает do_max_length Original: invokes do_max_length The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член std::codecvt)
| |
Protected member functions
| [virtual] |
преобразует строку из internT в externT, например, при записи в файл Original: converts a string from internT to externT, such as when writing to file The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (virtual protected std::codecvt функция-член)
|
| [virtual] |
преобразует строку из externT в internT, например, при чтении из файла Original: converts a string from externT to internT, such as when reading from file The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (virtual protected std::codecvt функция-член)
|
| [virtual] |
генерирует последовательность прекращения характер externT символов для неполного преобразования Original: generates the termination character sequence of externT characters for incomplete conversion The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (virtual protected std::codecvt функция-член)
|
| [virtual] |
возвращает количество externT символы, необходимые для производства одной internT характер, если постоянная Original: returns the number of externT characters necessary to produce one internT character, if constant The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (virtual protected std::codecvt функция-член)
|
| [virtual] |
Тесты, если грань кодирует тождественное преобразование для всех допустимых значений аргумента Original: tests if the facet encodes an identity conversion for all valid argument values The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (virtual protected std::codecvt функция-член)
|
| [virtual] |
вычисляет длину externT строку, которая будет потребляться преобразования в данной internT буфера Original: calculates the length of the externT string that would be consumed by conversion into given internT buffer The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (virtual protected std::codecvt функция-член)
|
| [virtual] |
возвращает максимальное число externT символы, которые могут быть преобразованы в единый internT характер Original: returns the maximum number of externT characters that could be converted into a single internT character The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (virtual protected std::codecvt функция-член)
|
Унаследован от std::codecvt_base
| Член типа
Original: Member type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
| enum result { ok, partial, error, noconv }; | Незаданной типа перечисления
Original: Unscoped enumeration type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| Перечисление постоянно
Original: Enumeration constant The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
ok
|
Преобразование была завершена без ошибок
Original: conversion was completed with no error The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
partial
|
Не все символы источником были преобразованы
Original: not all source characters were converted The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
error
|
встречается недопустимый символ
Original: encountered an invalid character The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
noconv
|
преобразование не требуется, вход и выход типов одинаковы
Original: no conversion required, input and output types are the same The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[править] Пример
Этот пример демонстрирует чтение GB18030-закодированный файл, используя codecvt грани с GB18030-знать язык
Original:
This example demonstrates reading a GB18030-encoded file using the codecvt facet from a GB18030-aware locale
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#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 Original: converts between character encodings, including UTF-8, UTF-16, UTF-32 The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (шаблон класса) | |