代码之家  ›  专栏  ›  技术社区  ›  Skyler Lauren

如何在Swift中保存十六进制编码的字符串

  •  1
  • Skyler Lauren  · 技术社区  · 8 年前

    我看过几篇关于如何转换和生成十六进制字符串的文章,但我遇到的问题是在写入文件时。我知道如何创建一个具有适当间距的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 回复  |  直到 8 年前
        1
  •  0
  •   Skyler Lauren    8 年前

    我最初做的是: 二进制->十进制->十六进制字符串->数据->文件

    二进制->UInt8阵列->数据->文件

    直接从[UInt8]创建数据需要将其转换为十六进制、空格,并保留了我需要的十六进制编码。

    希望这能帮助其他有类似问题的人。

    推荐文章