Как преобразовать массив байтов в строку (основание 256) в Delphi?
Используйте встроенную команду SetString . Он устанавливает строку на требуемую длину и копирует байты. Нет необходимости, чтобы массив был завершен с нулевой отметкой. На самом деле, если массив содержит в нем нулевые байты, они будут правильно отображаться внутри строки; они не будут прервать строку.
Если у вас есть UnicodeString , тогда вам нужно уменьшить наполовину параметр длины, поскольку он измеряет символы, а не байты:
21 seveleven [2010-10-07 15:42:00]
Как преобразовать массив байтов в строку (основание 256) в Delphi?
4 ответа
37 Решение Rob Kennedy [2010-10-07 23:11:00]
Используйте встроенную команду SetString . Он устанавливает строку на требуемую длину и копирует байты. Нет необходимости, чтобы массив был завершен с нулевой отметкой. На самом деле, если массив содержит в нем нулевые байты, они будут правильно отображаться внутри строки; они не будут прервать строку.
Если у вас есть UnicodeString , тогда вам нужно уменьшить наполовину параметр длины, поскольку он измеряет символы, а не байты:
9 himself [2010-10-07 15:57:00]
Я не уверен, что вы подразумеваете под Base256. Если вы хотите получить шестнадцатеричное представление данных, используйте это:
Если вы хотите просто визуализировать данные как строку (это не меняет содержимое!), где для каждого байта данных вы получите один символ ASCII с этим кодом, сделайте
Я думаю, что есть еще один хороший способ конвертировать байтовые массивы в строки — функцию Indy, называемую BytesToString , содержащуюся в IdGlobal . Он также позволяет вам указать StartIndex , Length и TEncoding для вашей строки. Я использовал его несколько раз, и я нахожу его очень полезным.
0 Eduardo [2017-07-25 09:02:00]
Быть GetString() обратная операция GetBytes().
Для передачи строковых сообщений, их прочтения, а также ряда других задач может потребовать их преобразование в массив байт и соответственно обратно в строковый формат. Рассмотрим как данная задача решается в C#.
В . NET для подобных преобразований предусмотрен специальный класс Encoding, который содержит требуемый функционал для каждой из кодировок.
Преобразование в строку выполняется методом GetBytes, который принимает в качестве параметра исходную строку. В свою очередь обратное преобразование производится методом GetString принимающим в качестве параметра массив байт.
Ниже приведён пример преобразования в массив байт строки в кодироке UTF-8.