Unicode.h

00001 // $Id: Unicode.h 21 2010-09-05 04:18:17Z cschwarz1 $
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