Je souhaite convertir un fichier binaire en un tableau de caractères ASCII. Comment puis je faire ça . merci.Comment convertir un fichier binaire en un ensemble de caractères ascii
Répondre
Cela dépend de ce que vous voulez faire avec. Ascii est supposé être 7bits (0-127 sont bien définis, les autres caractères dépendent de la page de code). L'encodage ASCII peut donc générer de mauvaises surprises (parmi lesquelles des caractères non imprimables comme des valeurs nulles ...)
Si vous voulez imprimer quelque chose de votre tableau d'octets, vous ne devriez pas les convertir avec un encodage ASCII. Vous feriez mieux de l'encoder en Base64, qui est un moyen sûr (quoique pas trop optimal en termes de taille) d'encoder des binaires dans des chaînes.
Pour encoder vos octets en base64, vous pouvez simplement aller avec:
string result = System.Convert.ToBase64String(yourByteArray);
True, bien que la conversion de la chaîne Base64 à ASCII sera sûr et ne donnera que des caractères imprimables. – PeterAllenWebb
Vous pouvez lire chaque caractère et le convertir en caractère. Cela convertirait chaque octet en caractère ascii. Est-ce ce que vous cherchez à faire?
Extrayez BASE64 ou UUEncoding. Je suppose que vous ne voulez utiliser que des caractères imprimables de l'ensemble ASCII à 256 caractères.
BASE64 utilise seulement 64 caractères (parfois cela est utilisé lors de l'envoi binaire par e-mail par exemple). Cela provoque la croissance de la production - quelque chose que vous devez prendre en compte dans votre situation.
Oui, et il est simple de le faire en C# avec Convert.ToBase64String() – PeterAllenWebb
StreamReader reader = new StreamReader("pathtoyourbinaryfile", System.Text.Encoding.ASCII);
char[] text = reader.ReadToEnd().ToCharArray();
Je ne crois pas que les intervenants précédents ont répondu à la question. Beaucoup de gens disent ASCII quand ils veulent dire byte donc je soupçonne que le questionneur voulait lire un fichier binaire et non un fichier texte avec des caractères codés.
Pour démontrer l'impact des différentes techniques que je crée un fichier texte UTF-8 de la chaîne suivante:
string s = "\ta£\x0394\x221A"; // tab; lower case a; pound sign; Greek delta; square root
Le programme suivant lit ce fichier d'abord comme une chaîne de texte puis comme un tableau d'octets. Dans chaque cas, l'entrée est d'abord affichée en décimal, puis en hexadécimal.
String test = "";
String fileStg = File.ReadAllText("Test.txt");
for (int i = 0; i < fileStg.Length; i++)
test += (int)fileStg[i] + " ";
Debug.Print(test);
test = "";
for (int i = 0; i < fileStg.Length; i++)
test += ((int)fileStg[i]).ToString("X") + " ";
Debug.Print(test);
test = "";
Byte[] fileByte = File.ReadAllBytes(pathProg + "Test.txt");
for (int i = 0; i < fileByte.Length; i++)
test += fileByte[i].ToString() + " ";
Debug.Print(test);
test = "";
for (int i = 0; i < fileByte.Length; i++)
test += fileByte[i].ToString("X") + " ";
Debug.Print(test);
Sortie:
9 97 163 916 8730 13 10 9 61 A3 394 221A D A 239 187 191 9 97 194 163 206 148 226 136 154 13 10 EF BB BF 9 61 C2 A3 CE 94 E2 88 9A D A
Notez que lors de la lecture dans un fichier texte, la nomenclature a été dépouillé et UTF-8 caractères multi-octets sont devenus des caractères simples dans la chaîne d'entrée. Mais lorsqu'il est lu comme un tableau d'octets, je reçois la nomenclature et l'UTF-8 brute. Je suppose que le questionneur voulait lire un vrai fichier binaire plutôt qu'un fichier texte Unicode mais je crois que cet exemple illustre mieux les effets des deux techniques et démontre que si le questionneur souhaite lire un fichier binaire, ReadAllBytes est le technique plus appropriée.
- 1. Comment convertir une chaîne en ascii en binaire en C#?
- 2. AS3: Comment convertir le code ASCII en caractères actionscript
- 3. Comment convertir une valeur ASCII en un caractère dans .NET
- 4. C/C++: Comment convertir 6bit ASCII en 7bit ASCII
- 5. Problème de support de caractères - Comment traduire des caractères ASCII plus élevés en caractères ASCII inférieurs
- 6. Comment convertir un format de fichier d'Unicode en ASCII en utilisant Python?
- 7. Convertir un domaine non ASCII en compatible SMTP
- 8. Convertir un nombre en chaîne binaire
- 9. Comment convertir les IDN en ASCII?
- 10. comment convertir ascii en unsigned int
- 11. Convertir l'image en binaire?
- 12. Comment convertir (translittérer) une chaîne de utf8 en ASCII (un seul octet) dans C#?
- 13. C++ caractères Ascii étendus
- 14. Comment puis-je lire proprement un fichier avec ASCII et un autre encodage en Java?
- 15. Comment convertir un fichier System.Web.HttpPostedFileBase en System.Web.HttpPostedFile?
- 16. Ruby: Comment convertir une chaîne en binaire et à écrire à un fichier
- 17. Comment écrire des caractères non-ASCII en utilisant echo?
- 18. Comment vérifier si le fichier est ASCII ou binaire en C++
- 19. SQL Server Convertir un entier en chaîne binaire
- 20. Comment puis-je créer un fichier binaire en Perl?
- 21. comment puis-je lire un fichier binaire en utilisant VBA?
- 22. Comment créer un fichier vidéo (AVI) en utilisant un ensemble de fichiers jpeg dans VB?
- 23. Comment les caractères ASCII sont-ils stockés en mémoire?
- 24. Convertir une chaîne de base25 à chaîne binaire en Java
- 25. comment convertir la chaîne en fichier entier binaire en utilisant la ligne de commande sous Linux
- 26. Comment faire rechercher/remplacer dans un fichier « binaire » de la ligne de commande
- 27. Comment convertir une chaîne en binaire dans Teradata?
- 28. Comment puis-je convertir une chaîne binaire codée en caractères hexadécimaux dans SQL Server?
- 29. Comment convertir un fichier XML en base de données?
- 30. Comment convertir un chemin de fichier en URL dans ASP.NET
Plus d'informations s'il vous plaît? –
Je suppose que vous parlez seulement des caractères imprimables. Les 256 caractères ASCII ne sont pas tous imprimables. –
Les questions me rappelle http://en.wikipedia.org/wiki/File:Bird_converted_to_ASCII_characters.png – tanascius