00001 /* -*- mode: C++; tab-width: 4; c-basic-offset: 4; -*- */ 00002 00003 // UT_Unicode.h 00004 00005 // Copyright (C) 2001 Mike Nordell <tamlin@algonet.se> 00006 // Copyright (c) 2007 Hubert Figuiere <hub@figuiere.net> 00007 // 00008 // This class is free software; you can redistribute it and/or 00009 // modify it under the terms of the GNU General Public License 00010 // as published by the Free Software Foundation; either version 2 00011 // of the License, or (at your option) any later version. 00012 // 00013 // This class is distributed in the hope that it will be useful, 00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 // GNU General Public License for more details. 00017 // 00018 // You should have received a copy of the GNU General Public License 00019 // along with this program; if not, write to the Free Software 00020 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 00021 // 02110-1301 USA. 00022 // 00023 00024 00025 #ifndef __UT_UNICODE_H_ 00026 #define __UT_UNICODE_H_ 00027 00028 #ifndef UT_TYPES_H 00029 #include "ut_types.h" 00030 #endif 00031 00032 00034 class ABI_EXPORT UT_Unicode 00035 { 00036 public: 00042 static UT_UCS4Char UTF8_to_UCS4 (const char *& buffer, size_t & length); 00043 00044 00047 static int UTF8_ByteLength (UT_UCS4Char ucs4); 00048 00053 static bool UCS4_to_UTF8 (char *& buffer, size_t & length, UT_UCS4Char ucs4); 00054 }; 00055 00056 00057 #endif