00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifndef STAR_ENCODING
00039 # define STAR_ENCODING
00040
00041 #include <vector>
00042
00043 #include "libstaroffice_internal.hxx"
00044
00050 class StarEncoding
00051 {
00052 public:
00054 enum Encoding {
00055 E_DONTKNOW=0,E_MS_1252,E_APPLE_ROMAN,E_IBM_437,E_IBM_850,E_IBM_860,E_IBM_861,E_IBM_863,
00056 E_IBM_865,E_SYMBOL=10,E_ASCII_US,E_ISO_8859_1,E_ISO_8859_2,E_ISO_8859_3,E_ISO_8859_4,
00057 E_ISO_8859_5,E_ISO_8859_6,E_ISO_8859_7,E_ISO_8859_8,E_ISO_8859_9,E_ISO_8859_14,E_ISO_8859_15,E_IBM_737,
00058 E_IBM_775,E_IBM_852,E_IBM_855,E_IBM_857,E_IBM_862,E_IBM_864,E_IBM_866,E_IBM_869,
00059 E_MS_874,E_MS_1250,E_MS_1251,E_MS_1253,E_MS_1254,E_MS_1255,E_MS_1256,E_MS_1257,
00060
00061 E_MS_1258,E_APPLE_CENTEURO=42,E_APPLE_CROATIAN,E_APPLE_CYRILLIC,E_APPLE_GREEK=47,
00062 E_APPLE_ICELAND=51,E_APPLE_ROMANIAN,E_APPLE_TURKISH=54,E_APPLE_UKRAINIAN,
00063 E_APPLE_CHINSIMP,E_APPLE_CHINTRAD,E_APPLE_JAPANESE,E_APPLE_KOREAN,E_MS_932,E_MS_936,E_MS_949,E_MS_950,
00064 E_SHIFT_JIS,E_GB_2312,E_GBT_12345,E_GBK,E_BIG5,E_EUC_JP,E_EUC_CN,
00065 E_KOI8_R=74,E_UTF7,E_UTF8,E_ISO_8859_10,E_ISO_8859_13,E_EUC_KR,
00066
00067 E_JIS_X_0201=81,E_JIS_X_0208,E_JIS_X_0212,E_MS_1361,E_BIG5_HKSCS=86,E_TIS_620,
00068 E_KOI8_U,E_ISCII_DEVANAGARI,
00069
00070
00071
00072 E_UCS4=0xFFFE,E_UCS2=0xFFFF
00073 };
00074
00076 StarEncoding();
00078 virtual ~StarEncoding();
00079
00081 static Encoding getEncodingForId(int id);
00083 static bool convert(std::vector<uint8_t> const &src, Encoding encoding, std::vector<uint32_t> &dest, std::vector<size_t> &srcPositions);
00084
00085 protected:
00091 static bool read(std::vector<uint8_t> const &src, size_t &pos, Encoding encoding, std::vector<uint32_t> &dest);
00092 };
00093 #endif
00094