This example shows how to convert code page encoded characters to Unicode.
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <uconv.h> int main(void) { UconvObject uconv_object = NULL; int rc = ULS_SUCCESS; size_t in_bytes_left; size_t uni_chars_left; size_t num_subs; int uni_buf_length = 50; UniChar uni_buffer[50]; UniChar *pout_uni_str; char char_data[] = "Character string to convert"; char *pin_char_str; /********************************************************************/ /* Create a conversion object based upon the process code page */ /********************************************************************/ rc = UniCreateUconvObject((UniChar *)L"", &uconv_object); if (rc != ULS_SUCCESS) { printf("UniCreateUconvObject error: return code = %u\n", rc); return 1; } /*********************************************************************/ /* pin_char_str points to the character string to be converted to */ /* Unicode characters */ /*********************************************************************/ pout_uni_str = uni_buffer; pin_char_str = char_data; uni_chars_left = uni_buf_length; in_bytes_left = ( strlen(char_data) + 1 ) * sizeof(char); /**********************************************************************/ /* make call to convert code page character string to a Unicode string*/ /**********************************************************************/ rc = UniUconvToUcs(uconv_object, (void **)&pin_char_str, &in_bytes_left, &pout_uni_str, &uni_chars_left, &num_subs); if(rc != ULS_SUCCESS && in_bytes_left > 0) { printf("UniUconvToUcs error: return code = %u\n", rc); printf("Character string was not completely converted to Unicode\n"); return 1; } return ULS_SUCCESS; }