<codecvt>

[added with C++11]


codecvt_mode · codecvt_utf16 · codecvt_utf8 · codecvt_utf8_utf16


Include the header <codecvt> to define several template classes that describe objects based on template class codecvt. These objects can serve as locale facets that control conversions between a sequence of values of type Elem and a sequence of values of type char.

namespace std {
enum codecvt_mode;

template<class Elem, unsigned long Maxcode = 0x10ffff,
    codecvt_mode Mode = (codecvt_mode)0>
    class codecvt_utf16;
template<class Elem, unsigned long Maxcode = 0x10ffff,
    codecvt_mode Mode = (codecvt_mode)0>
    class codecvt_utf8;
template<class Elem, unsigned long Maxcode = 0x10ffff,
    codecvt_mode Mode = (codecvt_mode)0>
    class codecvt_utf8_utf16;
}  // namespace std

The locale facets declared in this header convert between several character encodings. For wide characters (stored within the program in fixed-size integers):

For byte streams (stored in a file, transmitted as a byte sequence, or stored within the program in an array of char):

codecvt_mode

namespace std {
enum codecvt_mode {
    consume_header = 4,
    generate_header = 2,
    little_endian = 1};

The enumeration defines three constants that supply configuration information to the locale facets declared in this header:

These constants can be ORed together in arbitrary combinations.

codecvt_utf16

template<class Elem, unsigned long Maxcode = 0x10ffff,
    codecvt_mode Mode = (codecvt_mode)0>
    class codecvt_utf16;

The locale facet converts between wide characters of type Elem, encoded as UCS-2 or UCS-4, and a byte stream encoded as UTF-16LE if Mode & little_endian or UTF-16BE otherwise. The byte stream should be written to a binary file; it can be corrupted if written to a text file.

codecvt_utf8

template<class Elem, unsigned long Maxcode = 0x10ffff,
    codecvt_mode Mode = (codecvt_mode)0>
    class codecvt_utf8;

The locale facet converts between wide characters of type Elem, encoded as UCS-2 or UCS-4, and a byte stream encoded as UTF-8. The byte stream can be written to either a binary file or a text file.

codecvt_utf8_utf16

template<class Elem, unsigned long Maxcode = 0x10ffff,
    codecvt_mode Mode = (codecvt_mode)0>
    class codecvt_utf8_utf16;

The locale facet converts between wide characters of type Elem, encoded as UTF-16, and a byte stream encoded as UTF-8. The byte stream can be written to either a binary file or a text file.


See also the Table of Contents and the Index.

Copyright © 1992-2013 by P.J. Plauger. All rights reserved.