std::wstring_convert<Codecvt,Elem,Wide_alloc,Byte_alloc>:: from_bytes
|
Definido en el encabezado
<locale>
|
||
|
wide_string from_bytes
(
char
byte
)
;
|
(1) | |
|
wide_string from_bytes
(
const
char
*
ptr
)
;
|
(2) | |
|
wide_string from_bytes
(
const
byte_string
&
str
)
;
|
(3) | |
|
wide_string from_bytes
(
const
char
*
first,
const
char
*
last
)
;
|
(4) | |
Convierte una secuencia de bytes a una cadena ancha utilizando el facet apuntado por
cvtptr
.
[
first
,
last
)
.
Antes de que comience la conversión, si
*
this
no fue
no
construido con la sobrecarga del constructor
(3)
,
cvtstate
será establecido a su valor por defecto (el estado de conversión inicial).
El número de elementos de entrada convertidos exitosamente se almacenará en
cvtcount
.
Contenidos |
Valor de retorno
Si la conversión tiene éxito, retorna el resultado de la conversión. De lo contrario, si
*
this
está construido con la sobrecarga del constructor
(4)
, retorna
wide_err_string
.
Excepciones
Si la conversión falla y * this no fue construido con la sobrecarga del constructor (4) , lanza std::range_error .
Ejemplo
#include <codecvt> #include <cstdint> #include <iostream> #include <locale> #include <string> int main() { std::string utf8 = "z\u00df\u6c34\U0001d10b"; // o u8"zß水𝄋" // o "\x7a\xc3\x9f\xe6\xb0\xb4\xf0\x9d\x84\x8b"; // la faceta de conversión estándar UTF-8 / UTF-16 std::u16string utf16 = std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t>{}.from_bytes(utf8.data()); std::cout << "La conversión UTF-16 produjo " << utf16.size() << " unidades de código: " << std::showbase; for (char16_t c : utf16) std::cout << std::hex << static_cast<std::uint16_t>(c) << ' '; // la faceta de conversión estándar UTF-8 / UTF-32 std::u32string utf32 = std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t>{}.from_bytes(utf8); std::cout << "\nLa conversión UTF-32 produjo " << std::dec << utf32.size() << " unidades de código: "; for (char32_t c : utf32) std::cout << std::hex << static_cast<std::uint32_t>(c) << ' '; std::cout << '\n'; }
Salida:
La conversión UTF-16 produjo 5 unidades de código: 0x7a 0xdf 0x6c34 0xd834 0xdd0b La conversión UTF-32 produjo 4 unidades de código: 0x7a 0xdf 0x6c34 0x1d10b
Véase también
|
convierte una cadena ancha en una cadena de bytes
(función miembro pública) |
|
|
convierte una cadena de caracteres multibyte estrecha a cadena ancha, dado un estado
(función) |
|
|
[virtual]
|
convierte una cadena de
ExternT
a
InternT
, como cuando se lee desde un archivo
(función miembro protegida virtual de
std::codecvt<InternT,ExternT,StateT>
)
|