Подскажите пожалуйста, как можно перекодировать обычную ASCII строку в UTF-8 ?
Желательно в контексте использования под Clarion (в сети много примеров для PHP - но ничего не понял).
Заранее спасибо !

Модератор: Дед Пахом

Можно посмотреть в NetTalk от CapeSoft в модуле NetAll.clw -> AnsiCStringToUnicodeCStringЖелательно в контексте использования под Clarion
Код: Выделить всё
tcIO.mConvertStr           function(*cstring p_Str, long p_FromCP, long p_ToCP)
loc:pszTemp1 &cstring
loc:pszTemp2 &cstring
loc:Len     long
loc:Ret     long
loc:i       long
  code
  loc:len      = len(p_Str) * 2
  loc:pszTemp1 &= new(cstring(loc:len))
  loc:pszTemp2 &= new(cstring(loc:len))
  loc:ret = MultiByteToWideChar(p_FromCP, 0, address(p_Str), len(p_Str), address(loc:pszTemp1), loc:len)
  if loc:ret = 0
     Message('MultiByteToWideChar returns '&GetLastError())
  .
  loc:ret = WideCharToMultiByte(p_ToCP, 0 ,address(loc:pszTemp1), loc:ret, address(loc:pszTemp2),loc:Len,0, 0)
  loc:pszTemp2[loc:ret+1] = '<0>'
  p_Str = loc:pszTemp2
  dispose(loc:pszTemp1)
  dispose(loc:pszTemp2)
  return(0)
tcIO.mStr_UTF8_to_ANSI     function(*cstring p_Str)
  code
  return(self.mConvertStr(p_Str, CP_UTF8, CP_ACP))
tcIO.mStr_ANSI_to_UTF8     function(*cstring p_Str)
  code
  return(self.mConvertStr(p_Str, CP_ACP, CP_UTF8))