У меня возникла проблема при попытке записать строку в файл. Например, у меня есть этот код для преобразования целого значения в 2-байтовую строку, но кодировка строки преобразует целое число в невидимые байты.
Мне нужно преобразовать, например, целое число 45557 на 2 байта 0xB1 и 0xF5 и преобразовать их в String õ±. Затем в других процессах декодирование õ± для получения B1F5.
Проблема в том, что когда я пытаюсь декодировать õ±, я получаю C3B5C2B1. Я знаю, что это проблема кодификации строк, но как ее решить?
Я пробую это:
int iInteger = 45557;
int iLow = iInteger & 0b0000000011111111;
int iHight = (iInteger & 0b1111111100000000)>>8;
file_raw.open_file();
file_raw.println (" Character 1 num: " + iLow);
file_raw.println (" Character 2 num:" + iHight);
String cLow = new Character((char) 245).toString();
String cHigh = new Character((char) 177).toString();
Тогда результат:
Character 1 num: 245
Character 2 num:177
Character 1 string: õ
Character 2 string :±
На ваш взгляд, они хороши, но когда я собираюсь декодировать эти символы в HEX, я получаю 16-битные значения, потому что кодировка находится в UTF-8:
õ -> C3B5 (conversion on notepad++ or internet converters)
± -> C2B1
Только я хочу:
õ -> F5
± -> B1
Подробнее здесь: https://stackoverflow.com/questions/789 ... get-1-byte