Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::wstrin...:from_bytes(3)  C++ Standard Libary std::wstrin...:from_bytes(3)

NAME
       std::wstring_convert::from_bytes	- std::wstring_convert::from_bytes

Synopsis
	  Defined in header <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)

	  Performs  multibyte to wide conversion, using	the codecvt facet sup-
       plied at
	  construction.

	  1) Converts byte as if it was	a string of length 1 to	wide_string

	  2) Converts the null-terminated multibyte character sequence	begin-
       ning at the
	  character pointed to by ptr to wide_string

	  3) Converts the narrow string	str to wide_string.

	  4) Converts the narrow multibyte character sequence [first, last) to
       wide_string

	  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()

Return value
	  A wide_string	object containing the results  of  multibyte  to  wide
       conversion. If the
	  conversion  failed  and  there was a user-supplied wide-error	string
       provided	to the
	  constructor of this wstring_convert, returns that wide-error string.

Exceptions
	  If this wstring_convert object was constructed without  a  user-sup-
       plied wide-error
	  string, throws std::range_error on conversion	failure.

Example
       // Run this code

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

	int main()
	{
	    std::string	utf8 =	u8"z\u00df\u6c34\U0001d10b"; //	or u8"z"
				//					    or
       "\x7a\xc3\x9f\xe6\xb0\xb4\xf0\x9d\x84\x8b";

	    // the UTF-8 / UTF-16 standard conversion facet
	    std::u16string	   utf16	  =	     std::wstring_con-
       vert<std::codecvt_utf8_utf16<char16_t>,
       char16_t>{}.from_bytes(utf8.data());
	    std::cout  <<  "UTF16  conversion  produced	" << utf16.size() << "
       code units:\n";
	    for	(char16_t c : utf16)
		std::cout << std::hex << std::showbase << c << '\n';

	    // the UTF-8 / UTF-32 standard conversion facet
	    std::u32string	   utf32	  =	     std::wstring_con-
       vert<std::codecvt_utf8<char32_t>, char32_t>{}.from_bytes(utf8);
	    std::cout	<<   "UTF32  conversion	 produced  "  <<  std::dec  <<
       utf32.size() << " code units:\n";
	    for	(char32_t c : utf32)
		std::cout << std::hex << std::showbase << c << '\n';
	}

Output:
	UTF16 conversion produced 5 code units:
	0x7a
	0xdf
	0x6c34
	0xd834
	0xdd0b
	UTF32 conversion produced 4 code units:
	0x7a
	0xdf
	0x6c34
	0x1d10b

See also
	  to_bytes  converts a wide string into	a byte string
		    (public member function)
	  mbsrtowcs converts a	narrow	multibyte  character  string  to  wide
       string, given state
		    (function)
	  do_in	     converts  a  string from externT to internT, such as when
       reading from file
	  [virtual] (virtual protected	member	function  of  std::codecvt<In-
       ternT,ExternT,State>)

http://cppreference.com		  2022.07.31	  std::wstrin...:from_bytes(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::wstring_convert::from_bytes&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help