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