

PythonとSwiftでLZ4圧縮を使用した後に16進数文字列に変更すると、それぞれ異なる結果になりました。

Python3.7で以下のコードを試したところ、出力結果は`04224d1868400400000000000000cd040000806162636400000000`でした。

[code]

    import lz4.frame
    testString = "abcd"
    compressedData = lz4.frame.compress(testString.encode("utf-8"))
    hexString = compressedData.hex()
    print(hexString)
    
[/code]

Swift5で以下のコードを実行すると、出力結果は`6276342D040000006162636462763424`でした。

[code]

    import Foundation
    
    let testString = "abcd"
    
    //Convert string to data type (byte)
    if let testData = testString.data(using: .utf8)
    {
        //Compressed by lz4
        let compressedData = try (testData as NSData).compressed(using: .lz4)
    
        // Convert each byte to a string of hexadecimal digits.
        let stringArray = compressedData.map{String(format: "%02X", $0)}
    
        // Combine hexadecimal numbers.
        let hexString = stringArray.joined()
        print(hexString)
    }
    
[/code]

Swiftで圧縮したデータをPythonで解答したいと考えているため、SwiftでのLZ4圧縮データをPythonに合わせたいです。以前、[Zlibの場合について回答頂いた](https://ja.stackoverflow.com/questions/80755/python%E3%81%A8swift%E3%81%A7zlib%E3%81%AE%E5%9C%A7%E7%B8%AE%E7%B5%90%E6%9E%9C%E3%81%8C%E9%81%95%E3%81%86%E3%82%82%E3%81%AE%E3%81%AB%E3%81%AA%E3%82%8B)のですが、LZ4でもそういったことは可能でしょうか？


CC BY-SA 4.0
2021-10-13T03:50:54.507
83058
2021-10-13T03:50:54.507
36446
question
python swift
PythonとSwiftでLZ4の圧縮結果が違うものになる