00001
00002
00003 #ifndef BASE_UNICODE_H
00004 #define BASE_UNICODE_H
00005
00006 #include "String.h"
00007
00008 namespace base {
00015 class PPBASE_EXPORT Unicode {
00016 public:
00024 static bool isUtf16(const char *s);
00025
00034 static bool isUtf16(const char *s, size_t len);
00035
00043 static bool isUtf16(const String &s);
00044
00052 static bool isUtf8(const char *s);
00053
00062 static bool isUtf8(const char *s, size_t len);
00063
00071 static bool isUtf8(const String &s);
00072
00080 static bool isValidUtf8(const char *s);
00081
00090 static bool isValidUtf8(const char *s, size_t len);
00091
00099 static bool isValidUtf8(const String &s);
00100
00107 static WString latin1OrUtf8ToUtf16(const char *s);
00108
00116 static WString latin1OrUtf8ToUtf16(const char *s, size_t len);
00117
00124 static WString latin1OrUtf8ToUtf16(const String &s);
00125
00132 static WString latin1ToUtf16(const char *s);
00133
00141 static WString latin1ToUtf16(const char *s, size_t len);
00142
00149 static WString latin1ToUtf16(const String &s);
00150
00157 static String latin1ToUtf8(const char *s);
00158
00166 static String latin1ToUtf8(const char *s, size_t len);
00167
00174 static String latin1ToUtf8(const String &s);
00175
00185 static String utf16ToUtf8(const wchar_t *s, size_t *rlen = NULL);
00186
00197 static String utf16ToUtf8(const wchar_t *s, size_t len, size_t *rlen = NULL);
00198
00208 static String utf16ToUtf8(const WString &s, size_t *rlen = NULL);
00209
00217 static String utf8ToLatin1(const char *s, char rep = '\0');
00218
00227 static String utf8ToLatin1(const char *s, size_t len, char rep = '\0');
00228
00236 static String utf8ToLatin1(const String &s, char rep = '\0');
00237
00247 static WString utf8ToUtf16(const char *s, size_t *rlen = NULL);
00248
00259 static WString utf8ToUtf16(const char *s, size_t len, size_t *rlen = NULL);
00260
00270 static WString utf8ToUtf16(const String &s, size_t *rlen = NULL);
00271 };
00272 }
00273
00274 #endif