                     shift = nextSymbol.newShift
 
                     if symbol >= 0 && symbol <= 255 {
-                        out.append("".appending(String(UnicodeScalar(UInt8(truncatingBitPattern:
-                            UInt(symbol))))))
+                        out.append(Data(bytes: [UInt8(truncatingBitPattern: UInt(symbol))]))
                     } else if symbol == 256 {
                         break
                     } else if symbol >= 257 && symbol <= 285 {

            if isLastBit == 1 { break }
        }

        return (String(out.reduce("") { $0 + $1 })?.data(using: .utf8))!
    }

}

                // Check if lengths are OK
                guard length & nlength == 0 else { throw DeflateError.WrongBlockLengths }
                // Process uncompressed data into the output
                out.append(Data(data[index..<index+length]))
            } else if blockType == [1, 0] || blockType == [0, 1] {
                // Block with Huffman coding (either static or dynamic)

