Сбербанк getInfoParam("SERVER")

Страницы: 1
RSS
Сбербанк getInfoParam("SERVER"), Выводится некорректное строковое значение
 
Сбербанк getInfoParam("SERVER") выводит €’‘ QUIK ‘Ѓ…ђЃЂЌЉ
Какая кодировка и есть возможность конвертировать?
Заранее спасибо!
 
Михаил Понамаренко, Кодировка здесь, очевидно, DOS (866), Win-1251 выглядит именно так, а написано там "ИТС QUIK СБЕРБАНК".
 
Да, действительно так. Сверил в http://arbatova.ru/recode.html
Функции конвертирования для LUA из DOS (866) в Win-1251, я так понимаю, нет.
Будем пока называть "Сбербанк" - "‘Ѓ…ђЃЂЌЉ".
 
char *K866to1251(char *p)
{ char c, *q=p;
  if (p==NULL) return NULL;
  while((c=*p)!='\0') {
    if      (c>=128 && c<176) c+=64;
    else if (c>=224 && c<240) c+=16;
    *p = c;
    p++;
  }
  return q;
}
// *******************
char *K1251to866(char *p)
{ char c, *q = p;
  while((c=*p)!='\0') {
    if (c>=192 && c<240) c-=64;
    else if (c>=240) c-=16;
    else if (c==184) c = 'е';
    *p = c;
    p++;
  }
  return q;
}
// ******************

просто перепишите на луа
www.bot4sale.ru

Пасхалочка для Алексея Иванникова: https://forum.quik.ru/messages/forum10/message63088/topic7052/#message63088
 
Михаил Понамаренко, У меня когда-то была утилита перекодировки DOS-WIN-ISO-KOI-MAC (из любой в любую) - там я как раз через DOS перекодировал как промежуточную. Думаю, это можно написать и на LUA, хотя это, конечно, извращение. Ага, и таблица соответствующая сохранилась - вот она, если интересно:
Код
static UI8 DOSToWINT[128] =   // таблица перекодировки DOS в WIN-1251
{      // для верхних 128 символов
192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,
168,184,242,243,244,245,246,247,248,249,250,251,185,253,254,255
};      // DOSToWINT[]
 
Я когда-то для перекодировки входящих смс такую себе написал
Код
function dos2win(s)
  local str=""
  for i=1,string.len(s) do
    local byte=string.byte(s,i)
    local char=string.char(byte)
    if(byte>=128)and(byte<=175)then char=string.char(byte+64) end
    if(byte>=224)and(byte<=239)then char=string.char(byte+16) end
    if(byte==240)              then char=string.char(168) end
    if(byte==241)              then char=string.char(184) end
    str=str..char
  end
  return str
end
Страницы: 1
Читают тему
Наверх