This example shows how to convert a Unicode string to code page characters.
#include <stdio.h> #include <uconv.h> int main(void) { UconvObject uconv_object = NULL; int rc = ULS_SUCCESS; size_t out_bytes_left; size_t uni_chars_left; size_t num_subs; size_t char_buf_size = 50; char char_buffer[50]; char *pout_char_str; UniChar *pin_uni_str; UniChar uni_data[] = L"UniCode string to convert"; /********************************************************************/ /* 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_uni_str points to the unicode string to be converted to */ /* code page characters */ /*********************************************************************/ pout_char_str = char_buffer; pin_uni_str = uni_data; uni_chars_left = UniStrlen(pin_uni_str)+1; out_bytes_left = char_buf_size; /*********************************************************************/ /* make call to convert unicode string to code page characters */ /*********************************************************************/ rc = UniUconvFromUcs(uconv_object, &pin_uni_str, &uni_chars_left, (void **)&pout_char_str, &out_bytes_left, &num_subs); if(rc != ULS_SUCCESS && uni_chars_left > 0) { printf("UniUconvFromUcs error: return code = %u\n", rc); printf("Unicode string was not completely converted\n"); return 1; } return ULS_SUCCESS; }