Question

Comment puis-je insérer des caractères spéciaux ASCII (par exemple, avec la valeur ASCII 0x01) dans une chaîne?

Je demande parce que j'utilise les éléments suivants:

str.Replace( "<TAG1>", Convert.ToChar(0x01).ToString() );

et j'estime qu'il doit y avoir un meilleur moyen que celui-ci. Des idées?

Mise à jour:

De plus, si j'utilise cette méthodologie, dois-je m'inquiéter pour Unicode & amp; Des conflits ASCII?

Était-ce utile?

La solution

Je pense que vous pouvez utiliser \ uXXXX pour insérer les codes spécifiés dans votre chaîne.

ETA: Je viens de le tester et cela fonctionne. : -)

using System;
class Uxxxx {
    public static void Main() {
        Console.WriteLine("\u20AC");
    }
}

Autres conseils

  

De plus, si j'utilise cette méthodologie, dois-je m'inquiéter pour Unicode & amp; Des conflits ASCII?

Votre premier problème sera le conflit entre vos balises et ASCII. Une fois que vous aurez accédé à TAG10, vous vous heurterez à 0x0A: saut de ligne. Si vous vous assurez que vous n'obtiendrez jamais plus de neuf tags, vous devriez être en sécurité. Le codage Unicode (ou plutôt: UTF8) est identique au codage ASCII lorsque les valeurs d'octet sont comprises entre 0 et 127. Elles ne diffèrent que lorsque le bit le plus haut est défini.

  

et j'estime qu'il doit y avoir un meilleur   chemin que cela. Des idées?

On dirait que vous essayez de manipuler un bloc binaire à l'aide d'outils textuels . Si vous souhaitez insérer l'octet 0x01 , par exemple, vous ne manipulez plus de texte, car vous ne vous souciez pas de ce que cet octet pourrait représenter, et puisqu'il semble comme vous ne vous souciez même pas de l'encodage que vous allez sortir.

Une meilleure solution serait de traiter la chose que vous manipulez comme un bloc de données binaire, ce qui vous permettrait d’insérer facilement des bits et des octets, sans recourir à des solutions de contournement fragiles ni aux effets secondaires.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top