std::codecvt_byname
Материал из cppreference.com
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
<metanoindex/>
<tbody> </tbody>| Определено в заголовочном файле <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.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Четыре специализации осуществляется стандартной библиотеки
Оригинал:
Four specializations are provided by the standard library
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Определены в заголовочном файле
<locale> | |
std::codecvt_byname<char, char, std::mbstate_t>
|
тождественное преобразование
Оригинал: identity conversion Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
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. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
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. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
std::codecvt_byname<wchar_t, char, std::mbstate_t>
|
локалей преобразования между строку широких и узких, возможно, многобайтовые, строка
Оригинал: locale-specific conversion between wide string and narrow, possibly multibyte, string Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
Функции-члены
строит новую грань codecvt_byname Оригинал: constructs a new codecvt_byname facet Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент) | |
разрушает codecvt_byname грань Оригинал: destructs a codecvt_byname facet Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (protected функция-элемент) |
Унаследован от std::codecvt
Member types
| Тип члена | Определение |
intern_type
|
internT
|
extern_type
|
externT
|
state_type
|
stateT
|
Member objects
Имя пользователя
Оригинал: Member name Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
Type |
id (статическим)
|
std::locale::id |
Member functions
Вызывает do_out Оригинал: invokes do_out Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент std::codecvt)
| |
Вызывает do_in Оригинал: invokes do_in Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент std::codecvt)
| |
Вызывает do_unshift Оригинал: invokes do_unshift Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент std::codecvt)
| |
Вызывает do_encoding Оригинал: invokes do_encoding Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент std::codecvt)
| |
Вызывает do_always_noconv Оригинал: invokes do_always_noconv Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент std::codecvt)
| |
Вызывает do_length Оригинал: invokes do_length Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент std::codecvt)
| |
Вызывает do_max_length Оригинал: invokes do_max_length Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент std::codecvt)
|
Protected member functions
[virtual] |
преобразует строку из internT в externT, например, при записи в файл Оригинал: converts a string from internT to externT, such as when writing to file Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (virtual protected std::codecvt функция-элемент)
|
[virtual] |
преобразует строку из externT в internT, например, при чтении из файла Оригинал: converts a string from externT to internT, such as when reading from file Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (virtual protected std::codecvt функция-элемент)
|
[virtual] |
генерирует последовательность прекращения характер externT символов для неполного преобразования Оригинал: generates the termination character sequence of externT characters for incomplete conversion Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (virtual protected std::codecvt функция-элемент)
|
[virtual] |
возвращает количество externT символы, необходимые для производства одной internT характер, если постоянная Оригинал: returns the number of externT characters necessary to produce one internT character, if constant Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (virtual protected std::codecvt функция-элемент)
|
[virtual] |
Тесты, если грань кодирует тождественное преобразование для всех допустимых значений аргумента Оригинал: tests if the facet encodes an identity conversion for all valid argument values Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (virtual protected std::codecvt функция-элемент)
|
[virtual] |
вычисляет длину externT строку, которая будет потребляться преобразования в данной internT буфера Оригинал: calculates the length of the externT string that would be consumed by conversion into given internT buffer Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (virtual protected std::codecvt функция-элемент)
|
[virtual] |
возвращает максимальное число externT символы, которые могут быть преобразованы в единый internT характер Оригинал: returns the maximum number of externT characters that could be converted into a single internT character Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (virtual protected std::codecvt функция-элемент)
|
Унаследован от 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. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
Пример
Этот пример демонстрирует чтение GB18030-закодированный файл, используя codecvt грани с GB18030-знать язык
Оригинал:
This example demonstrates reading a GB18030-encoded file using the codecvt facet from a GB18030-aware locale
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Запустить этот код
#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 (шаблон класса) |