Как сохранить строку с шестнадцатеричным кодированием в Swift - PullRequest
0 голосов
/ 29 октября 2018

Я видел несколько сообщений о том, как преобразовать и сделать шестнадцатеричную строку, но проблема, с которой я сталкиваюсь, заключается в записи в файл. Я знаю, как создать то, что я хочу, в виде строки utf8 с правильным интервалом.

5350 4401 0000 0002 0500 0000 0000 0000 1540 0016 4000 5a80 005a 7000 5abc 0056 b000 5680 0056 8001 7fa0 017f a001 5fe0 0157 f00d 56bc 0d56 a001 56a0 0156 a003 56bc 00c0 c000 0000 8100 0001 00

Код, который я использовал.

var fileURLS = [URL]()

let fileData = getCode().data(using: String.Encoding.utf8)
var fileName = "\(self.drawing.getDrawingName()).\(self.getCodeExtension())"

fileName = fileName.components(separatedBy: CharacterSet.illegalCharacters).joined(separator: "")

let localDir = NSTemporaryDirectory()
let localPath = localDir.appendingFormat("%@", fileName)
fileURLS.append(URL(fileURLWithPath: localPath))
try? fileData?.write(to: URL(fileURLWithPath: localPath), options: .atomic)

Когда я открываю файл, я пытаюсь скопировать его, он говорит, что он имеет 77 байт с шестнадцатеричным кодированием, но когда я пытаюсь создать его с помощью Swift, он получается намного больше с кодировкой utf8. Теперь я знаю, что использую UTF8, но не могу понять, как сохранить то, что у меня есть выше, и какую кодировку я могу использовать, чтобы записать это как шестнадцатеричное кодирование.

Надеюсь, это имеет смысл.

1 Ответ

0 голосов
/ 01 ноября 2018

То, что я первоначально делал, было: Двоичные-> Десятичные-> Шестнадцатеричная строка-> Данные-> Файл

То, что, казалось, решило мою проблему, было сделать: Binary-> UInt8 Array-> Data-> File

Создание данных непосредственно из [UInt8] позаботилось о преобразовании их в шестнадцатеричное, пробел и сохранение шестнадцатеричной кодировки, которая мне была нужна.

Надеюсь, это поможет кому-то, у кого есть подобные проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...