http://www.freepascal.ru/forum/viewtopi ... =5&t=43898
----
Получаю с телеграмма сообщение с эмодзи.
При преобразовании и сохранении в строку..."text":"\u2600\ufe0f"}
Код: Выделить всё
jsonObj:=GetJSON( sResp ) as TJSONObject;
tele_txt:= jsonObj.Items[i].FindPath(path+'text').AsString;
т.е. преобразование \u2600\ufe0f дает кракозябру которая к тому же съедает кавычки в строке...."text" : "☀}
Получается ошибка в fpjson в функции
function JSONStringToString(const S: TJSONStringType): TJSONStringType;
А именно в преобразовании,
Код: Выделить всё
Case S[I] of
'\','"','/'
: App:=S[I];
'b' : App:=#8;
't' : App:=#9;
'n' : App:=#10;
'f' : App:=#12;
'r' : App:=#13;
'u' : begin
U2:=BufferHexToInt(PAnsiChar(@S[I+1]));
if U2=-1 then
Raise EJSON.Create('Invalid unicode hex code: '+Copy(S,I+1,4));
Inc(I,4);
if (U1<>0) then
begin
App:={$IFDEF FPC_HAS_CPSTRING}UTF8Encode({$ENDIF}WideChar(U1)+WideChar(U2){$IFDEF FPC_HAS_CPSTRING}){$ENDIF};
U2:=0;
end
else
U1:=U2;
end;
end;
