J'ai une chaîne contenant des données binaires (données non textuelles). Comment est-ce que je convertis ceci en tableau d'octets bruts?Chaîne au tableau d'octets bruts
Répondre
Une chaîne en C# - par définition - ne contient pas de données binaires. Il consiste en une séquence de caractères Unicode.
Si votre chaîne ne contient que des caractères Unicode dans le jeu de caractères ASCII (7 bits), vous pouvez utiliser Encoding.ASCII pour convertir la chaîne en octets:
byte[] result = Encoding.ASCII.GetBytes(input);
Si vous avez une chaîne qui contient caractères Unicode dans la gamme u0000-u00ff et veulent les interpréter comme des octets, vous pouvez lancer les caractères à octets:
byte[] result = new byte[input.Length];
for (int i = 0; i < input.Length; i++)
{
result[i] = (byte)input[i];
}
Ok. Donc, je devrais probablement avoir une chaîne en premier lieu. Merci. – Joel
Voici une façon:
public static byte[] StrToByteArray(string str)
{
System.Text.ASCIIEncoding encoding=new System.Text.ASCIIEncoding();
return encoding.GetBytes(str);
}
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] theBytes = encoding.GetBytes("Some String");
Remarque, il existe d'autres formats d'encodage, vous voudrez peut-être utiliser.
ne fonctionnera pas. Le contenu de la source est supposé en UTF-16, ce qui échouera sur certaines combinaisons de valeurs d'octets. –
Il est une très mauvaise idée de stocker des données binaires dans un chaîne. Toutefois, si vous devez absolument le faire, vous pouvez convertir une chaîne binaire en un tableau d'octets à l'aide de la page de codes 1252. N'utilisez pas la page de codes 0 ou vous perdrez des valeurs dans des langues étrangères. Il arrive juste que la page de code 1252 convertisse correctement toutes les valeurs d'octets de 0 à 255 en Unicode et vice-versa.
Certains programmes VB6 mal écrits utilisent des chaînes binaires. Malheureusement, certains sont tellement de lignes de code qu'il est presque impossible de tout convertir en tableaux byte() en une seule fois.
Vous avez été prévenu. À utiliser à vos risques et périls:
Dim bData() As Byte
Dim sData As String
'convert string binary to byte array
bData = System.Text.Encoding.GetEncoding(1252).GetBytes(sData)
'convert byte array to string binary
sData = System.Text.Encoding.GetEncoding(1252).GetString(bData)
Vous ne pouvez pas utiliser CP1252 pour le caractère ''\ x80'', il est converti en'? '. – Abyx
octet x80 convertit en valeur Unicode x20ac et vice-versa. Comment avez-vous eu un point d'interrogation? – Brain2000
Peut-être que cela dépend du système. J'ai utilisé 'BitConverter.ToString (Encoding.GetEncoding (1252) .GetBytes (" \ x80 "))' et j'ai obtenu '3F'. Vous pouvez l'essayer sur ideone.com – Abyx
- 1. chaîne au tableau d'octets
- 2. envoyer des bits bruts au terminal en python
- 3. Lecture de sons bruts
- 4. Chaîne csv de Python au tableau
- 5. déclarer ou convertir une chaîne au format de tableau PHP
- 6. Ajouter une chaîne au tableau de caractères dans C
- 7. Comment accéder à une chaîne au format de tableau JSON
- 8. ajouter une chaîne au début de chaque entrée de tableau
- 9. Comment décoder une image PNG en octets bruts?
- 10. C Tableau de chaîne
- 11. Chaîne entre un tableau?
- 12. Enregistrement d'une BufferedImage à octets bruts
- 13. Obtention d'en-têtes de réponse HTTP bruts
- 14. Injecter des paquets TCP bruts avec Python
- 15. Interface C++ entre pointeurs bruts et shared_ptr
- 16. Tableau Java: accès direct au composant dans le tableau
- 17. Tableau chaîne et un paramètre de chaîne
- 18. Comment ajouter au tableau
- 19. LINQ au tableau
- 20. smarty attribuer au tableau
- 21. preg_match au tableau. PHP
- 22. Tableau d'index au tableau de gammes
- 23. Attribuer un tableau de pointeurs au tableau
- 24. chaîne au nombre
- 25. Convertir un tableau en chaîne
- 26. comparer chaîne en php tableau
- 27. Tableau cacao d'objets à chaîne
- 28. chaîne convertir en tableau multidimensionnel
- 29. de tableau JavaScript à chaîne
- 30. Tableau multidimensionnel dans la chaîne
Puis-je demander où avez-vous eu une telle chaîne? –
est votre base de chaîne encodée 64? – Ray
binaire non-texte! = Chaîne: http://marcgravell.blogspot.com/2010/03/binary-data-and-strings.html –