Это сводит меня с ума. Два дня я безуспешно преобразовывал свою строку из одного типа в другой.
Я использую Delphi Rio, и мне нужно преобразовать строку в HEX или DE C, но строка содержит специальные символы, такие как é é í ó ú ñ или €.
Например, символ «á» равен 160 (de c) или A0 (hex). Тем не менее, я получаю 225, 145, 241 в зависимости от типа строки (ansichar, utf8, widechar ...), но я не знаю, как я могу получить реальное значение 160.
Мне нужно это потому что я хочу отправить специальные символы на принтер Bluetooth. Если я отправлю это:
edit1.text := 'áéíóú€$';
FSocket.SendData(TEncoding.ASCII.GetBytes(edit1.Text));
Принтер получит это (HEX):
3F 3F 3F 3F 3F 3F 24
Однако оно должно получить это (HEX):
A0 82 A1 A2 A3 D5 24
Это потому что я получаю неправильное значение ASCII для каждого символа (63 является кодом ascii для символа '?').
Итак ... как я могу отправить настоящий текст ASCII на принтер? Как я могу получить настоящий код ASCII для 'á' (160)?
Пожалуйста, помогите!