Я работаю над приложением, которое должно принимать опубликованные данные из формы и обрабатывать их. Одним из шагов этого процесса является удаление данных, которые поступают. Одна проблема, с которой я сталкиваюсь, заключается в том, что данные, которые я получаю из формы, являются двоичными по своей природе, поэтому в них содержатся escape-последовательности, которые мне нужно превратить в символы. Это довольно тривиально с такими символами, как tab и newline, но я не могу понять, как это сделать с шестнадцатеричными и восьмеричными значениями.
Вот пример некоторых входных данных:
"blahblah\nblahblah\x20blahblah\037blahblah"
Когда сообщение будет опубликовано, оно будет выглядеть примерно так:
"blahblah%5Cnblahblah%5Cx20blahblah%5C037blahblah"
По большей части я сейчас просто просматриваю строку и сканирую «%». Затем я использую sscanf, чтобы получить значение экранированного символа. Тогда, если это 92, я смотрю на следующий персонаж. Если это что-то вроде «n», я просто заменяю символы на «\ n» и продолжаю.
Мой вопрос в основном, как я могу просмотреть строку для шестнадцатеричных и восьмеричных значений? В приведенном выше примере, как я могу добраться до% 5C037 и заменить всю эту последовательность соответствующим символом '\ 037'?
Как примечание, я должен сделать все это, потому что данные, принятые в форме, обычно передаются между серверными вызовами, и я пытаюсь собрать тестовое приложение, чтобы позволить пользователю видеть, что происходит с данные.