Je travaille sur une application qui doit accepter les données publiées d'un formulaire et les traiter. Une étape de ce processus consiste à désactiver les données qui arrivent. Un problème auquel je suis confronté est que les données que j'obtiens du formulaire sont de nature binaire et incluent donc des séquences d'échappement dont j'ai besoin pour revenir en caractères. C'est assez trivial avec des caractères comme tab et newline, mais je n'arrive pas à comprendre comment faire cela avec des valeurs hexadécimales et octales.Récupère la valeur hexadécimale ou octale d'une chaîne échappée
Voici un exemple de certaines données d'entrée:
"blahblah\nblahblah\x20blahblah\037blahblah"
Quand il est affiché ça va ressembler à quelque chose comme:
"blahblah%5Cnblahblah%5Cx20blahblah%5C037blahblah"
Pour la plupart, je suis actuellement juste en passant par la chaîne et balayer pour '%'. Ensuite, j'utilise un sscanf pour obtenir la valeur du caractère échappé. Alors si c'est 92, je regarde le personnage suivant. Si c'est quelque chose comme 'n', je remplace simplement les caractères par '\ n' et continue.
Ma question est fondamentalement comment puis-je balayer la chaîne pour les valeurs hexadécimales et octales? Dans l'exemple ci-dessus, comment puis-je obtenir% 5C037 et remplacer cette séquence entière par le caractère '\ 037' approprié? En guise de note, je dois faire tout cela parce que les données acceptées sur le formulaire sont généralement transmises entre les appels du serveur et j'essaie de mettre en place une application de test pour permettre à un utilisateur de voir ce qui se passe à les données.
Cela devrait fonctionner. Bien que cela ne me donne pas vraiment la représentation \ xxx qui serait idéale, cela me laisse sortir la valeur du caractère. – bcasp