Public Types | Static Public Member Functions | Public Attributes | Static Public Attributes

ACEXML_Encoding Class Reference

ACEXML_Encoding. More...

#include <ACEXML/common/Encoding.h>

List of all members.

Public Types

enum  {
  UCS4BE, UCS4LE, UCS4_2143, UCS4_3412,
  UTF16BE, UTF16LE, UTF8, OTHER
}

Static Public Member Functions

static const ACEXML_Charget_encoding (const char *input)

Public Attributes

enum ACEXML_Encoding:: { ... }  ENCODING

Static Public Attributes

static const ACEXML_Charencoding_names_ [8]
static const ACEXML_UTF8 byte_order_mark_ [][4]
static const ACEXML_UTF8 magic_values_ [][4]

Detailed Description

ACEXML_Encoding.

Wrapper class for determining the encoding of a file or a byte stream.

Definition at line 35 of file Encoding.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
UCS4BE 
UCS4LE 
UCS4_2143 
UCS4_3412 
UTF16BE 
UTF16LE 
UTF8 
OTHER 

Definition at line 38 of file Encoding.h.

       {
    UCS4BE,
    UCS4LE,
    UCS4_2143,
    UCS4_3412,
    UTF16BE,
    UTF16LE,
    UTF8,
    OTHER
  } ENCODING;


Member Function Documentation

const ACEXML_Char * ACEXML_Encoding::get_encoding ( const char *  input  )  [static]

Definition at line 38 of file Encoding.cpp.

{
  if ((ACE_OS::memcmp (&ACEXML_Encoding::byte_order_mark_[ACEXML_Encoding::UTF16BE][0], input, 2) == 0)
      && (input[2] != 0 || input[3] != 0)) // 3 & 4 should not be both zero
    return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF16BE];
  else if ((ACE_OS::memcmp (&ACEXML_Encoding::byte_order_mark_[ACEXML_Encoding::UTF16LE][0], input, 2) == 0)
    && (input[2] != 0 || input[3] != 0)) // 3 & 4 should not be both zero
    return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF16LE];
  else if (ACE_OS::memcmp (&ACEXML_Encoding::byte_order_mark_[ACEXML_Encoding::UTF8][0], input, 3) == 0)
    return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF8];
  else if (ACE_OS::memcmp (&ACEXML_Encoding::magic_values_[ACEXML_Encoding::UTF16BE][0], input, 4) == 0)
    return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF16BE];
  else if (ACE_OS::memcmp (&ACEXML_Encoding::magic_values_[ACEXML_Encoding::UTF16LE][0], input, 4) == 0)
    return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF16LE];
  else if (ACE_OS::memcmp (&ACEXML_Encoding::magic_values_[ACEXML_Encoding::UTF8][0], input, 4) == 0)
    return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF8];
  else
    {
      // ACE_ERROR ((LM_ERROR, "Unknown encoding. Assuming UTF-8\n"));
      return ACEXML_Encoding::encoding_names_[ACEXML_Encoding::UTF8];
    }
}


Member Data Documentation

Initial value:
 {
  { '\x00', '\x00', '\xFE', '\xFF' }, 
  { '\xFF', '\xFE', '\x00', '\x00' }, 
  { '\x00', '\x00', '\xFF', '\xFE' }, 
  { '\xFE', '\xFF', '\x00', '\x00' }, 
  { '\xFE', '\xFF', '\xFF', '\xFF' }, 
  { '\xFF', '\xFE', '\xFF', '\xFF' }, 
  { '\xEF', '\xBB', '\xBF', '\xFF' }  
}

Definition at line 51 of file Encoding.h.

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 49 of file Encoding.h.

Initial value:
 {
  { '\x00', '\x00', '\x00', '\x3c' }, 
  { '\x3c', '\x00', '\x00', '\x00' }, 
  { '\x00', '\x00', '\x3c', '\x00' }, 
  { '\x00', '\x3c', '\x00', '\x00' }, 
  { '\x00', '\x3c', '\x00', '\x3f' }, 
  { '\x3c', '\x00', '\x3f', '\x00' }, 
  { '\x3c', '\x3f', '\x78', '\x6d' }, 
}

Definition at line 53 of file Encoding.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines