Страница 1 из 1

Конвертация текста UTF-16 в ANSI

Добавлено: 08 Сентябрь 2012, 9:04
Игорь Столяров
Привет всем !

Есть некий файл в кодировке UTF-16. Его нужно перегнать в обычный ANSI. Загрузил файл в строку, пробую конвертировать.
Попробовал через MultiByteToWideChar() & WideCharToMultiByte(), как UTF-8 в ANSI и вообще ничего не получилось .... :(

Есть ли у кого нибудь пример или хотя бы идея как вообще такое преобразование выполнить ?
Заранее спасибо !

Re: Конвертация текста UTF-16 в ANSI

Добавлено: 08 Сентябрь 2012, 14:13
seawolf
Было чего-то такое надо поискать. Читал utf16 файл как ascii там через позицию идет комбинация символов которые просто надо вырезать

Re: Конвертация текста UTF-16 в ANSI

Добавлено: 08 Сентябрь 2012, 14:39
Игорь Столяров
Да, сапсибо, уже разобрался. :)

Re: Конвертация текста UTF-16 в ANSI

Добавлено: 21 Сентябрь 2012, 10:19
PIT
Может кому пригодится.

Код: Выделить всё

utf2txt              PROCEDURE  (st_in)                    ! Declare Procedure
d1    SHORT
d2    SHORT
c     SHORT
t     cstring(max_buffer)                    
len_str LONG

  CODE
   clear(t)
   j#=0
   len_str = len(clip(st_in))
   loop i#=1 to len_str   
      d1 = val(st_in[i#]) 
      IF d1 <= 127
         t = t & chr(d1)
      ELSE
         d2 = val(st_in[i#+1])
         CASE d1
         OF 208
            case d2
            OF 129
               c = 168
            of 78
               c = 185
            else
               c = d2 + 48
            .
            t = t & chr(c)
         OF 209
            case d2
            of 209
               c = 184
            else
               c = d2 + 112
            .
            t = t & chr(c)
         END
         i# += 1
      END
   END 
   return t