#include <ACEXML/common/Encoding.h>
Public Types | |
| enum | { UCS4BE, UCS4LE, UCS4_2143, UCS4_3412, UTF16BE, UTF16LE, UTF8, OTHER } |
Static Public Member Functions | |
| const ACEXML_Char * | get_encoding (const char *input) |
Public Attributes | |
| enum ACEXML_Encoding:: { ... } | ENCODING |
Static Public Attributes | |
| const ACEXML_Char * | encoding_names_ [8] |
| const ACEXML_UTF8 | byte_order_mark_ [][4] |
| const ACEXML_UTF8 | magic_values_ [][4] |
Wrapper class for determining the encoding of a file or a byte stream.
Definition at line 35 of file Encoding.h.
|
|
Definition at line 38 of file Encoding.h.
|
|
|
Definition at line 38 of file Encoding.cpp. References byte_order_mark_, encoding_names_, magic_values_, ACE_OS::memcmp(), UTF16BE, UTF16LE, and UTF8. Referenced by ACEXML_StrCharStream::determine_encoding(), ACEXML_HttpCharStream::determine_encoding(), and ACEXML_FileCharStream::determine_encoding().
00039 {
00040 if ((ACE_OS::memcmp (&ACEXML_Encoding::byte_order_mark_[ACEXML_Encoding::UTF16BE][0], input, 2) == 0)
00041 && (input[2] != 0 || input[3] != 0)) // 3 & 4 should not be both zero
00042 return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF16BE];
00043 else if ((ACE_OS::memcmp (&ACEXML_Encoding::byte_order_mark_[ACEXML_Encoding::UTF16LE][0], input, 2) == 0)
00044 && (input[2] != 0 || input[3] != 0)) // 3 & 4 should not be both zero
00045 return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF16LE];
00046 else if (ACE_OS::memcmp (&ACEXML_Encoding::byte_order_mark_[ACEXML_Encoding::UTF8][0], input, 3) == 0)
00047 return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF8];
00048 else if (ACE_OS::memcmp (&ACEXML_Encoding::magic_values_[ACEXML_Encoding::UTF16BE][0], input, 4) == 0)
00049 return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF16BE];
00050 else if (ACE_OS::memcmp (&ACEXML_Encoding::magic_values_[ACEXML_Encoding::UTF16LE][0], input, 4) == 0)
00051 return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF16LE];
00052 else if (ACE_OS::memcmp (&ACEXML_Encoding::magic_values_[ACEXML_Encoding::UTF8][0], input, 4) == 0)
00053 return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF8];
00054 else
00055 {
00056 // ACE_ERROR ((LM_ERROR, "Unknown encoding. Assuming UTF-8\n"));
00057 return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF8];
00058 }
00059 }
|
|
|
Definition at line 51 of file Encoding.h. Referenced by get_encoding(). |
|
|
|
|
|
Initial value: {
ACE_TEXT ("UCS-4BE"),
ACE_TEXT ("UCS-4LE"),
ACE_TEXT ("UCS-4_2143"),
ACE_TEXT ("UCS-4_3412"),
ACE_TEXT ("UTF-16"),
ACE_TEXT ("UTF-16"),
ACE_TEXT ("UTF-8"),
}
Definition at line 6 of file Encoding.cpp. Referenced by get_encoding(). |
|
|
Definition at line 53 of file Encoding.h. Referenced by get_encoding(). |
1.3.6