[#BloombergLP-bdlde-CharConvertUtf32-utf32ToUtf8-024] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlde.adoc[bdlde]::xref:BloombergLP/bdlde/CharConvertUtf32.adoc[CharConvertUtf32]::utf32ToUtf8 :relfileprefix: ../../../ :mrdocs: Load into the specified `dstVector` the result of converting the specified `srcString` of `UTF‐32` values to `UTF‐8`, always followed by a null character, and return 0 on success or `CharConvertStatus::k_INVALID_INPUT_BIT` if invalid `UTF‐32` values (in the range `[0xD800 .. 0xDFFF]` or above 0x10FFFF) are seen. Optionally specify `srcStringlength` as the number of `UTF‐32` values to be converted. If `srcStringLength` is specified, convert that many UTF‐32 values from `srcString` (including zero values), otherwise convert values up to but not including a terminating zero value. Optionally specify `numCodePointsWritten` to receive the number of `UTF‐8` code points written to `dstVector`. Optionally specify `errorByte` as the character to be written to `dstVector` as the translation of invalid `UTF‐32` values; if not specified, `?` is used, and if given as 0, no character is written at all. Optionally specify `byteOrder` to determine how `UTF‐32` values in `srcString` are interpreted; if not given, host byte order is used. The behavior is undefined if `errorByte` is 0x80 or above. Note that if you are passing the `bsl::vector<unsigned int>` obtained from a call to `utf8ToUtf32` and using `srcStringLength`, you must take care to pass `vector.size() ‐ 1` to `srcStringLength` to avoid embedding the terminating 0. == Synopsis Declared in `<bdlde_charconvertutf32.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static int utf32ToUtf8( xref:bsl/vector-00d.adoc[bsl::vector<char>]* dstVector, unsigned int const* srcString, std::size_t* numCodePointsWritten = 0, unsigned char errorByte = '?', xref:BloombergLP/bdlde/ByteOrder/Enum.adoc[ByteOrder::Enum] byteOrder = ByteOrder::e_HOST); ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#