Frage

Ich arbeite an einer Anwendung, die veröffentlichte Daten aus einem Formular akzeptieren und sie verarbeiten muss. Ein Schritt dieses Prozesses besteht darin, die einzukommenden Daten zu enthüllen. Ein Problem, mit dem ich konfrontiert bin, ist, dass die Daten, die ich aus dem Formular aus dem Formular greife, binärer Natur sind, sodass es Fluchtsequenzen enthält, die ich wieder in Zeichen verwandeln muss. Dies ist ziemlich trivial mit Charakteren wie Tab und Newline, aber ich kann nicht herausfinden, wie man das mit Hex- und Oktalwerten macht.

Hier ist ein Beispiel für einige Eingabedaten:

"blahblah\nblahblah\x20blahblah\037blahblah"

Wenn es gepostet wird, sieht es aus wie:

"blahblah%5Cnblahblah%5Cx20blahblah%5C037blahblah"

Zum größten Teil gehe ich gerade die Zeichenfolge durch und scanne nach '%'. Dann benutze ich ein SSCANF, um den Wert des entkommenen Charakters zu erhalten. Wenn es dann 92 ist, schaue ich mir den nächsten Charakter an. Wenn es so etwas wie 'n' ist, ersetze ich nur die Charaktere durch ' n' und gehe weiter.

Meine Frage ist im Grunde genommen, wie kann ich die Zeichenfolge nach Hex- und Oktalwerten durchsuchen? Wie könnte ich im obigen Beispiel %5C037 erreichen und diese ganze Sequenz durch das entsprechende ' 037' Zeichen ersetzen?

Als Hinweis muss ich all dies tun, da die auf dem Formular akzeptierten Daten normalerweise zwischen Serveranrufen weitergegeben werden, und ich versuche, eine Testanwendung zusammenzustellen, damit ein Benutzer erkennen kann, was mit den Daten geschieht.

War es hilfreich?

Lösung

strtol sollte tun, was du brauchst.

Andere Tipps

Google für die URL Decode C -Implementierung und Sie werden viele Antworten finden, eines davon:

http://www.icosaedro.it/apache/urldecode.c

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top