2010-10-01 4 views
2

Comment convertir un ByteArray en chaîne. Le toString() ne fonctionne pas car j'ai des caractères spéciaux et il ne me montre que le premier caractère.Flex: ByteArray to string

Voici un exemple:

49, 48, 54, 0, 50, 54, 51, 48, 57, 52, 52, 49, 48, 48, 48, 56, 0, 49, 0, 49, 0, 73, 77, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 49, 0, 50, 54, 51, 49, 53, 56, 50, 52, 48, 48, 48, 52, 0, 0, 0, 0, 49, 53, 49, 46, 48, 48, 0, 0, 70, 82, 0, 0, 0, 0, 54, 48, 55, 48, 90, 81, 57, 51, 0, 70, 82, 0, 48, 0, 70, 67, 65, 0, 76, 73, 86, 82, 89, 0, 0, 54, 48, 55, 48, 90, 81, 57, 51, 0, 70, 82, 0, 69, 85, 82, 0, 52, 50, 48, 48, 46, 48, 48, 0, 49, 0, 49, 0, 51, 48, 0, 0, 66, 65, 86, 75, 76, 0, 0, 49, 48, 49, 48, 52, 0, 0, 0, 0, 0, 49, 48, 49, 48, 54, 57, 49, 48, 49, 53, 0, 0, 0 

Merci pour votre temps.

Répondre

1

Utilisation String.fromCharCode:

var myStr:String = String.fromCharCode(49, 48, 54, 32, 50, 54, 51, 48, 57, 52, 52, 49, 48, 48, 48, 56, 32, 49, 32, 49, 32, 73, 77, 32, 52, 32, 32, 32, 32, 32, 32, 32, 32, 49, 32, 49, 32, 50, 54, 51, 49, 53, 56, 50, 52, 48, 48, 48, 52, 32, 32, 32, 32, 49, 53, 49, 46, 48, 48, 32, 32, 70, 82, 32, 32, 32, 32, 54, 48, 55, 48, 90, 81, 57, 51, 32, 70, 82, 32, 48, 32, 70, 67, 65, 32, 76, 73, 86, 82, 89, 32, 32, 54, 48, 55, 48, 90, 81, 57, 51, 32, 70, 82, 32, 69, 85, 82, 32, 52, 50, 48, 48, 46, 48, 48, 32, 49, 32, 49, 32, 51, 48, 32, 32, 66, 65, 86, 75, 76, 32, 32, 49, 48, 49, 48, 52, 32, 32, 32, 32, 32, 49, 48, 49, 48, 54, 57, 49, 48, 49, 53, 32, 32); 

EDIT: Remplacer le zéro octets 0 avec 32 (espace) et vous obtiendrez ceci:

106 263094410008 1 1 IM 4 1 1 263158240004 151,00 FR 6070ZQ93 FR 0 FCA LIVRY 6070ZQ93 FR EUR 4200,00 1 1 30 BAVKL 10104 1010691015

+0

Thanx @splash pour la réponse rapide , mais je suis confronté au même problème que lors de l'utilisation de .toString() il ne montre pas tous les caractères, aucune idée pourquoi? ou quoi d'autre à utiliser. – Adnan

+0

Je ne peux pas le tester dans le moment, mais peut-être un octet nul n'est pas autorisé. – splash

1

Pour référence ultérieure, vous pouvez convertir un tableau d'octets en une chaîne Base64, ce qui serait une manière plus standard de sérialiser un binaire en chaîne.

La bibliothèque mx dispose d'un encodeur base64/classe décodeur, mais il y a quelques autres implémentations autour de la pose ....

avoir une lecture de cet article: http://jpauclair.net/2010/01/09/base64-optimized-as3-lib/

+0

thanx @slomojo va jeter un oeil. – Adnan