我写了一个Lua脚本来分析一些协议。 我想拆分长字符串,所以我需要将它们拆分成几行。
但是当我尝试使用“ \ r \ n”时,wireshark中显示的是“ \ r \ n”,而不是新行。 例如,我编写如下代码,但是显示“ value \ 12 \ r \ r \ n”。 这意味着“ \\”成功翻译为“ \”,但是0x0d和“ \ r \ n”没有翻译吗?
local normalized_value = '\\'.."12"..string.char(0x0d).."\r\n"
如何进行这项工作?
答案 0 :(得分:0)
最后,我在Wireshark的源代码中找到了它。 是的,wireshark忽略了这些符号。 您可以在print.c中找到它。
static void
print_escaped_csv(FILE *fh, const char *unescaped_string)
{
const char *p;
if (fh == NULL || unescaped_string == NULL) {
return;
}
for (p = unescaped_string; *p != '\0'; p++) {
switch (*p) {
case '\b':
fputs("\\b", fh);
break;
case '\f':
fputs("\\f", fh);
break;
case '\n':
fputs("\\n", fh);
break;
case '\r':
fputs("\\r", fh);
break;
case '\t':
fputs("\\t", fh);
break;
default:
fputc(*p, fh);
}
}
}
所以我决定构建自己的版本