0

所以我试图编码一个多行字符串并通过HTTP发送到服务器,我正在编码这个字符串:

#include <stdio.h>
int main(void) 
{
     printf(\"Code Cabana!\");
     return 0;
}

NSLog我得到这个时:

151657384nclude23Cstdio.h3.825303E-2990X1.242D78P-1047220220220220220220220220220220220220 0nt2ain(void)27B0X1.16BC009216BCP-877220220220220220220220220220220220220220220 0xe7fe00rintf(硨ode⭸abana!2;2202202202202202202202202202202202202202202eturn222022022022022022022022022022022022020A15203843

我正在使用此代码对其进行编码:

NSString *urlCode = [[NSString stringWithFormat:@"#include <stdio.h>\n int main(void){\nprintf(\"Code Cabana!\");return 0;\n}"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
4

1 回答 1

0

不要使用NSLog(urlCode)NSLog(@"%@", urlCode)按你应该的方式使用。

当您这样做时,您的 C 源代码(以 UTF-8 进行 URL 编码)如下所示:

%23include%20%3Cstdio.h%3E%0A%20int%20main(void)%7B%0Aprintf(%22Code%20Cabana!%22);return%200;%0A%7D

这可能就是你所追求的。

我只想说,通过网络将 C 源代码发送到编译器会带来巨大的安全隐患,除非您从不执行编译后的代码。

至于编译器失败, %22 是直引号",因此另一个引号可能是您最后的“智能”编辑器的复制粘贴。

于 2012-09-22T19:18:29.110 回答