所以我正在尝试编码多行字符串并通过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];
答案 0 :(得分:0)
请勿使用NSLog(urlCode)
,请使用NSLog(@"%@", urlCode)
。
当您这样做时,以UTF-8编码的C源代码如下所示:
%23include%20%3Cstdio.h%3E%0A%20int%20main(void)%7B%0Aprintf(%22Code%20Cabana!%22);return%200;%0A%7D
这可能就是你想要的。
我可以说,将C源代码通过线路发送到编译器会产生巨大的安全隐患,除非您从未执行过编译的代码。
至于编译器失败,%22是直引号"
,所以另一个引号可能是来自你最后的“智能”编辑器的复制粘贴。