CharToOem -- старая функция, она псевдографику режет и другие медвежьи услуги оказывает. В юникодных приложениях использовать ее глупо. Тем более, что при этом двойное преобразование делается: вначале из Юникода в ANSI, а потом из ANSI в OEM.
Глупо не пользоваться встроенными средствами. В TEncoding используется WideCharToMultiByte, преобразующая символы без искажений.
В Интернете полно быдлокода, по мере сил стараюсь ему противостоять.
