00001
00002
00003
00004
00005
00006
00008 #ifndef CPPCMS_ENCODING_H
00009 #define CPPCMS_ENCODING_H
00010
00011 #include <string>
00012 #include <map>
00013 #include <locale>
00014 #include <cppcms/defs.h>
00015 #include <cppcms/config.h>
00016
00017 namespace cppcms {
00022 namespace encoding {
00023
00027
00032 bool CPPCMS_API valid(std::locale const &loc,char const *begin,char const *end,size_t &count);
00037 bool CPPCMS_API valid_utf8(char const *begin,char const *end,size_t &count);
00042 bool CPPCMS_API valid(char const *encoding,char const *begin,char const *end,size_t &count);
00047 bool CPPCMS_API valid(std::string const &encoding,char const *begin,char const *end,size_t &count);
00048
00060 bool CPPCMS_API is_ascii_compatible(std::string const &encoding);
00069 bool CPPCMS_API validate_or_filter( std::string const &encoding,
00070 char const *begin,char const *end,
00071 std::string &output,
00072 char replace = 0);
00073
00078 std::string CPPCMS_API to_utf8(std::locale const &loc,char const *begin,char const *end);
00083 std::string CPPCMS_API to_utf8(char const *encoding,char const *begin,char const *end);
00088 std::string CPPCMS_API to_utf8(std::locale const &loc,std::string const &str);
00093 std::string CPPCMS_API to_utf8(char const *encoding,std::string const &str);
00094
00099 std::string CPPCMS_API from_utf8(std::locale const &loc,char const *begin,char const *end);
00104 std::string CPPCMS_API from_utf8(char const *encoding,char const *begin,char const *end);
00109 std::string CPPCMS_API from_utf8(std::locale const &loc,std::string const &str);
00114 std::string CPPCMS_API from_utf8(char const *encoding,std::string const &str);
00115
00116 }
00117 }
00118
00119
00120 #endif