URL编码导致iOS问题

时间:2012-09-22 17:31:12

标签: iphone encoding

所以我正在尝试编码多行字符串并通过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];

1 个答案:

答案 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是直引号",所以另一个引号可能是来自你最后的“智能”编辑器的复制粘贴。