Los caracteres, los números en hexadecimal, binario o decimal, son los mismos datos representados de forma distinta. Probablemente, los datos que recibes sean correctos, pero no los muestras de la forma correcta.
Por ejemplo, si 's' es un string:
Código Delphi
[-]
for i := 1 to lengt(s) do
begin
lblChar.Caption := lblChar.Caption + s[i];
lblHex.Caption := lblHex.Caption + format('%x ', ord(s[i]);
lblDec.Caption := lblHex.Caption + format('%d ', ord(s[i]);
end;