Код: Выделить всё
from_UTF8  Routine
! strout string(2048) - на выходе
! str до  string(2048) - на входе
! sym string(1)
! sim byte
          clear(strout)
          e0 = len(clip(str))
          if e0 <> 0 then
          e2 = 1            ! Индекс по входной строке
          e1 = 1            ! ИНлекс по выходной строке
          loop 
         
         sym = str[(e2)]    ! Получим входной символ
         sim = val(sym)     ! Получим его значение
         if sim < 128 then     !
         strout[(e1)] = sym    ! Перенесем без изменений
         e1 = e1 + 1           ! На следующий байт
                      end      !
         if sim = 208  then    !
                                         e2 = e2 + 1
                                         ims = val(str[(e2)]) + 48
                                         strout[(e1)] = chr(ims)
                                         e1 = e1 + 1
                       end
         if sim = 209  then                                                    
                                         e2 = e2 + 1
                                         ims = val(str[(e2)]) + 112
                                         strout[(e1)] = chr(ims)
                                         e1 = e1 + 1
                       end
         e2 = e2 + 1
         if e2 = e0 + 1 then break .
         end
                    end
           exit
To_UTF8    Routine
          clear(strout)
          
          e0 = len(clip(str))
          if e0 <> 0 then
          e2 = 1
          loop e1 = 1 to e0
         sym = str[(e1)]
         sim = val(sym)
         if sim < 128 then
         strout[(e2)] = sym
         e2 = e2 + 1
                      else
         if sim >= 192 and sim <=239 then
                                         strout[(e2)] = '<208>'
                                         e2 = e2 + 1
                                         strout[(e2)] = chr(sim-48)
                         
                                     else
         if sim >= 240 and sim <=255 then
                                         strout[(e2)] = '<209>'
                                         e2 = e2 + 1
                                         strout[(e2)] = chr(sim-112)
                                     else
         strout[(e2)] = '.'
                                     end
                                     end
         e2 = e2 + 1
                      end
         end
                      end
         exit