Internationalization Module User’s Guide : Chapter 4 Conversion : Character Encodings
Character Encodings
There are hundreds of different character encodings currently in use around the world. IANA is a reliable, authoritative source for encoding names and their aliases:
http://www.iana.org/assignments/character-sets
The Internationalization Module recognizes all IANA encoding names and aliases, plus host-specific encoding names (such as cp1254, a Microsoft Windows -codepage) and other special purpose names.
The following sections describe how to access the complete list of encoding names recognized by the Internationalization Module.
Listing Encoding Names
The RWUAvailableEncodingList class constructs RWUAvailableEncodingListIterator instances that provide access to the recognized list of encoding names. The list cannot be changed at run time.
The static methods begin() and end() return RWUAvailableEncodingListIterator instances. For example, this code constructs an iterator object, then iterates over the list of encoding names and writes them to std::cout:
 
RWUAvailableEncodingListIterator iter;
 
for (iter = RWUAvailableEncodingList::begin();
iter != RWUAvailableEncodingList::end();
++iter){
std::cout << *iter << std::endl;
}
RWUAvailableEncodingList may also be instantiated to produce an object that allows easy access to the static methods:
 
RWUAvailableEncodingListIterator iter;
RWUAvailableEncodingList list;
 
for (iter = list.begin(); iter != list.end(); ++iter) {
std::cout << *iter << std::endl;
}
Listing Encoding Name Aliases
The RWUEncodingAliasList class constructs RWUEncodingAliasListIterator instances that provide access to the list of aliases associated with a given encoding. The list cannot be changed at run time.
The methods begin() and end() return RWUEncodingAliasListIterator instances. For example, this code constructs a list of aliases for US-ASCII, then iterates over the list of aliases and writes them to std::cout:
 
RWUEncodingAliasList list("US-ASCII");
RWUEncodingAliasListIterator iter;
for (iter = list.begin(); iter != list.end(); ++iter) {
std::cout << *iter << std::endl;
}
The results are something like this:
 
US-ASCII
ascii
ascii-7
ANSI_X3.4-1968
ANSI_X3.4-1986
ISO_646.irv:1991
iso646-us
us
csASCII
646
iso-ir-6
cp367
Listing Encoding Name Standards
The RWUEncodingNameStandardList class constructs RWUEncodingNameStandardListIterator instances. RWUEncodingNameStandardListIterator instances provide access to the list of encoding name standards (such as MIME or IANA) that apply to any of the encoding names and aliases currently contained within the Internationalization Module’s default database. The list cannot be changed at run time.
The static methods begin() and end() return instances of RWUEncodingNameStandardListIterator. For example, this code constructs an iterator object, then iterates over the list of standards and writes them to std::cout:
 
RWUEncodingNameStandardListIterator iter;
 
for (iter = RWUEncodingNameStandardList::begin();
iter != RWUEncodingNameStandardList::end();
++iter){
std::cout << *iter << std::endl;
}
RWUEncodingNameStandardList may also be instantiated to produce an object that allows easy access to the static methods:
 
RWUEncodingNameStandardListIterator iter;
RWUEncodingNameStandardList list;
 
for (iter = list.begin(); iter != list.end(); ++iter) {
std::cout << *iter << std::endl;
}