Bonjour,

J'ai une chaine de caractère que je reçois en "String" mais qui correspond à un tableau de Bytes convertis en chaine.
Je reçois donc cette chaine que je reconverti d'abord en tableau de bytes, puis je dois la traduire en une chaine de caractères normale (décoder l'ascii en string).

Mon code pour décoder ne fonctionne pas.
j'ai testé, mon tableau de Bytes est bien ok et contient bien ce qu'il faut, mais quand je décode de Byte vers string, j'obtient rien du tout.
Pourtant mon code semble bon.

Pouvez-vous m'aider s'il vous plait ?

Voici mon code :



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
	Public ws_key_encoded_string As String = ""
	Public ws_key_decoded_string As String = ""
 
	Protected Function Encode_Key(ByVal var1 As String, ByVal var2 As String) As Boolean
		ws_key_encoded_string = ""
		Dim BoolOk As Boolean = False
		Dim ascii As New ASCIIEncoding()
		Try
			If var1 <> "" And var2 <> "" Then
				Dim unicodeString As String = var1 & "-" & var2
				Dim array() As Byte = ascii.GetBytes(unicodeString)
				Dim b As Byte
				For Each b In array
					ws_key_encoded_string = ws_key_encoded_string & b.ToString()
				Next b
				BoolOk = True
			Else
				errtxt = "Les paramètres d'encodages de la clé ne sont pas valides ! Opération annulée."
			End If
		Catch ex As Exception
			errtxt = ex.ToString()
		End Try
		Return BoolOk
	End Function
 
	Protected Function Decode_Key(ByVal ws_key As String) As Boolean
		ws_key_decoded_string = ""
		Dim BoolOk As Boolean = False
		Dim ascii As New ASCIIEncoding()
		Dim lenKey As Integer = Len(Trim(ws_key))
		Try
			Dim encoded_Bytes(lenKey - 1) As Byte
			Dim c As String
			Dim b As Byte
			For i As Integer = 1 To (lenKey)
				c = Mid(ws_key, i, 1)
				b = CByte(CInt(c))
				encoded_Bytes(i - 1) = b
			Next
			ws_key_decoded_string = ascii.GetString(encoded_Bytes)
			BoolOk = True
		Catch ex As Exception
			errtxt = ex.ToString()
		End Try
		Return BoolOk
	End Function