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

std::wstring_convert::to_bytes

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

<metanoindex/>

 
 
Библиотека локализации
Локали и фасеты
Локали
Базовые классы категорий фасетов
фасеты ctype
числовые фасеты
фасеты сопоставления
фасеты времени
денежные фасеты
фасеты сообщений
Классификация и преобразование символов
Классификация символов
Преобразование
(C++11/17*)
(C++11/17*)
Фасеты преобразования кода
(C++11/17*)
(C++11/17*)    
(C++11/17*)
Локаль C
 
std::wstring_convert
Член функций
Оригинал:
Member functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
 
<tbody> </tbody>
Определено в заголовочном файле <locale>
byte_string to_bytes( Elem wchar );
(1)
byte_string to_bytes( const Elem* wptr );
(2)
byte_string to_bytes( const wide_string& wstr );
(3)
byte_string to_bytes( const Elem* first, const Elem* last);
(4)
Выполняет широкий в многобайтовые преобразования, используя codecvt грань поставляется на строительство.
Оригинал:
Performs wide to multibyte conversion, using the codecvt facet supplied at construction.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

1)

Преобразует wchar, как если бы это была строка длиной 1, чтобы byte_string
Оригинал:
Converts wchar as if it was a string of length 1, to byte_string
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

2)

Преобразует нулем широкий начале последовательности символов в широких символов, на которую указывает wptr, чтобы byte_string
Оригинал:
Converts the null-terminated wide character sequence beginning at the wide character pointed to by wptr, to byte_string
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

3)

Преобразует широкий str строку byte_string.
Оригинал:
Converts the wide string str to byte_string.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

4)

Преобразует широкий [first, last) последовательность символов для byte_string
Оригинал:
Converts the wide character sequence [first, last) to byte_string
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Во всех случаях, превращение начинается в начальном состоянии сдвига, если непервых исходном состоянии была предоставлена ​​эта wstring_convert конструктор. Количество символов преобразуется и окончательное значение преобразования состояния запоминаются и могут быть доступны с state() и converted()
Оригинал:
In all cases, the conversion begins in initial shift state, unless non-initial starting state was provided to this wstring_convert constructor. The number of characters converted and the final value of the conversion state are remembered and can be accessed with state() and converted()
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Возвращаемое значение

byte_string объект, содержащий результаты широко в многобайтовые преобразования. Если преобразование не удалось, и был пользователем байт строку ошибки при условии, конструктору этому wstring_convert, что возвращает байт строки ошибки.
Оригинал:
A byte_string object containing the results of the wide to multibyte conversion. If the conversion failed and there was a user-supplied byte-error string provided to the constructor of this wstring_convert, returns that byte-error string.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Исключения

Если это wstring_convert объект был построен без пользователем байт строки ошибки, бросает std::range_error в случае ошибки преобразования.
Оригинал:
If this wstring_convert object was constructed without a user-supplied byte-error string, throws std::range_error on conversion failure.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Пример

#include <iostream>
#include <string>
#include <locale>
#include <codecvt>
#include <iomanip>

// utility function for output
void hex_print(const std::string& s)
{
    std::cout << std::hex << std::setfill('0');
    for(unsigned char c : s)
        std::cout << std::setw(2) << static_cast<int>(c) << ' ';
    std::cout << std::dec << '\n';
}

int main()
{
    // wide character data
    std::wstring wstr =  L"z\u00df\u6c34\U0001d10b"; // or L"zß水𝄋"

    // wide to UTF-8
    std::wstring_convert<std::codecvt_utf8<wchar_t>> conv1;
    std::string u8str = conv1.to_bytes(wstr);
    std::cout << "UTF-8 conversion produced " << u8str.size() << " bytes:\n";
    hex_print(u8str);

    // wide to UTF-16le
    std::wstring_convert<std::codecvt_utf16<wchar_t, 0x10ffff, std::little_endian>> conv2;
    std::string u16str = conv2.to_bytes(wstr);
    std::cout << "UTF-16le conversion produced " << u16str.size() << " bytes:\n";
    hex_print(u16str);
}

Вывод:

UTF-8 conversion produced 10 bytes:
7a c3 9f e6 b0 b4 f0 9d 84 8b
UTF-16le conversion produced 10 bytes:
7a 00 df 00 34 6c 34 d8 0b dd

См. также

преобразует байт строки в строку широких
Оригинал:
converts a byte string into a wide string
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

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

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