I highly recommend to change your application to Unicode. When not doing so, you have to select the correct multi byte character set. That means that the input must contain only characters from a specific multi byte code page and you have to know that code page. If the input contains Unicode characters not covered by that code page, you will still have some replacement characters or even question marks for characters without replacements.
When having UTF-8 encoded input, use the
MultiByteToWideChar function | Microsoft Docs[
^] to convert the Input to a wide string. This must be done in any case; even for a multi byte application.
If you really want your application to be multi byte, you have then to use the
WideCharToMultiByte function | Microsoft Docs[
^] to convert the wide string created by the above conversion to the required multi byte code page.