#include #include #include #include #include #include #include int main(int argc, char **argv) { const char* instring = "my teststring"; xmlCharEncodingHandler* encodingHandler = NULL; xmlCharEncoding encoder; int insize, outsize, ret, tmp; char* convertbuffer = NULL; encoder = xmlParseCharEncoding("ISO-8859-1"); if (encoder <= 0) { fprintf(stderr, "no encoder\n"); return 1; } encodingHandler = xmlGetCharEncodingHandler(encoder); if (!encodingHandler) { fprintf(stderr, "no encodingHandler\n"); return 1; } insize = strlen((char*)instring) + 1; outsize = insize * 2 - 1; convertbuffer = malloc(outsize); tmp = insize - 1; ret = encodingHandler -> input( (unsigned char*)convertbuffer, &outsize, (unsigned char*)instring, &tmp); if (ret <= 0 || tmp != insize - 1) { fprintf(stderr, "bad encoding result: %d\n", ret); return 1; } free(convertbuffer); xmlCharEncCloseFunc(encodingHandler); return 0; }