Bonjour à tous.
Voici le problème auquel je suis confronté. Je dois Compresser une chaine de caractères Depuis une application développée en VB.NET Framework 3.5, qui sera décompressée et interprétée depuis une application codée en PHP, via l'algorithme GZip.
En théorie aucun problème. Je dispose d'un exemple de chaine normale et compressée en PHP à l'aide de GZip (que je reproduis avec un code PHP perso), mais je ne parviens pas à trouver le même résultat sous VB.NET.
J'ai trouvé un bloc de code sur le net qui est le suivant et qui me sert pour mes tests en .NET:
Pour info et exemple voici un jeu d'essai de mes résultats:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim buf() As Byte = Encoding.UTF8.GetBytes(Text) Dim memoryStream As New MemoryStream() Dim returnValue As String = "" Using gstream As New GZipStream(memoryStream, CompressionMode.Compress, True) gstream.Write(buf, 0, buf.Length) End Using memoryStream.Position = 0 Dim compressedData(CInt(memoryStream.Length)) As Byte memoryStream.Read(compressedData, 0, compressedData.Length) Dim gZipBuffer(compressedData.Length + 4) As Byte Buffer.BlockCopy(compressedData, 0, gZipBuffer, 4, compressedData.Length) Buffer.BlockCopy(BitConverter.GetBytes(buf.Length), 0, gZipBuffer, 0, 4) returnValue = Convert.ToBase64String(gZipBuffer)
L'un d'entre vous aurait-il un élément de réponse ou une piste à me fournir pour m'aiguiller? Merci d'avance et bonne journée!Chaine initiale : 0x0200010000000000000000000100010002000100020002000000000000FA00FA00000001800100F4015E01000001800100E803C201000001800100
Codee en GZip depuis PHP : ?3?0020004??Pl?D!+ps?`?j?*7CSW?yP1Wcg#T1? gjx
Codée en GZip depuis .NET : eAAAAB+LCAAAAAAABADtvQdgHEmWJSYvbcp7f0r1StfgdKEIgGATJNiQQBDswYjN5pLsHWlHIymrKoHKZVZlXWYWQMztnbz33nvvvffee++997o7nU4n99//P1xmZAFs9s5K2smeIYCqyB8/fnwfPyJ23u3s7ezs7O70n139v/l+T/9vn2fH8n9pfcCtnu3v7N4/VXj62enBzr2TvfCz/wexDWdqeAAAAAAA
Partager