Excuses si cela a été répondu quelque part, mais si c'est le cas, je ne pouvais pas le trouver. Je fais quelques manipulations avec des tableaux d'octets, et j'ai remarqué que lors de la conversion de caractères invalides (par exemple, l'octet 0x9C), il est interprété comme un "?". Par conséquent, quand je le convertis en octet, il sort comme 0x3F.Byte cohérent Représentation des caractères invalides
Mon problème est que les parties des tableaux d'octets sont ASCII, mais d'autres sont des sommes de contrôle qui peuvent contenir des caractères invalides comme celui-ci. Je voudrais être en mesure de convertir l'ensemble du tableau en chaîne pour plus de commodité. Existe-t-il un encodage qui produira ASCII pour les caractères normaux et s'assurera que la conversion d'un caractère invalide en une chaîne et inversement produira le même octet?
Il existe toujours des valeurs qui peuvent entraîner l'obtention de données non valides. Si vous avez besoin de représenter un octet [] sous forme de chaîne, vous devez utiliser 'Convert.ToBase64String (' et 'Convert.FromBase64String (' De même, si vous envisagez d'envoyer des données entre les ordinateurs 'System.Text.Encoding.Default' peut être Il suffit de prendre vos sommes de contrôle et d'en faire leur propre byte [] et d'ajouter le texte en base64 à la fin de la chaîne –
La valeur par défaut varie selon les machines, les utilisateurs et l'heure. avoir une chance de travailler dans le contexte de la transformation de va-et-vient décrite dans la question –
Je devrais ajouter, j'ai trouvé le défaut sur ma machine à être System.Text.Encoding.SBCSCodePageEncoding, et j'ai changé le code pour spécifier que Il peut très bien donner des données invalides, mais jusqu'à présent, il fonctionne correctement – Cobalt