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
00038 #ifndef BLOCXX_UTF8_UTILS_HPP_INCLUDE_GUARD_
00039 #define BLOCXX_UTF8_UTILS_HPP_INCLUDE_GUARD_
00040 #include "blocxx/BLOCXX_config.h"
00041 #include "blocxx/Types.hpp"
00042 #include "blocxx/ArrayFwd.hpp"
00043 #include "blocxx/Exception.hpp"
00044 #include "blocxx/CommonFwd.hpp"
00045
00046 namespace BLOCXX_NAMESPACE
00047 {
00048
00049 BLOCXX_DECLARE_APIEXCEPTION(InvalidUTF8, BLOCXX_COMMON_API);
00050
00051 namespace UTF8Utils
00052 {
00060 BLOCXX_COMMON_API size_t charCount(const char* utf8str);
00068 BLOCXX_COMMON_API UInt16 UTF8toUCS2(const char* utf8char);
00074 BLOCXX_COMMON_API String UCS2toUTF8(UInt16 ucs2char);
00081 BLOCXX_COMMON_API UInt32 UTF8toUCS4(const char* utf8char);
00087 BLOCXX_COMMON_API String UCS4toUTF8(UInt32 ucs4char);
00095 BLOCXX_COMMON_API void UCS4toUTF8(UInt32 ucs4char, StringBuffer& sb);
00096
00105 BLOCXX_COMMON_API int compareToIgnoreCase(const char* str1, const char* str2);
00112 BLOCXX_COMMON_API Array<UInt16> StringToUCS2(const String& input);
00113
00120 BLOCXX_COMMON_API Array<UInt16> StringToUCS2ReplaceInvalid(const String& input);
00121
00127 BLOCXX_COMMON_API String UCS2ToString(const Array<UInt16>& input);
00133 BLOCXX_COMMON_API String UCS2ToString(const Array<char>& input);
00140 BLOCXX_COMMON_API String UCS2ToString(const void* input, size_t inputLength);
00141
00152 BLOCXX_COMMON_API bool toUpperCaseInPlace(char* input);
00153
00157 BLOCXX_COMMON_API String toUpperCase(const char* input);
00158
00169 BLOCXX_COMMON_API bool toLowerCaseInPlace(char* input);
00170
00174 BLOCXX_COMMON_API String toLowerCase(const char* input);
00175
00176 }
00177
00178 }
00179
00180 #endif