C # String Représentation ASCII
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?
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.