3

这是我的代码,如果我传递一个英文单词,它可以正常工作,但如果我传递多个包含空格或阿拉伯语单词的单词,它就不起作用

NSString *url = [NSString stringWithFormat:@"http://localhost:8888/addcomm.php?nickname=%@&comm=%@&pos=%@",nick,comm.text,postid];
    NSData *data =[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:url]];
    NSString *res = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

这是我的 php 代码:

$n1 = $_GET['nickname'];
$c1 = $_GET['comm'];
$p1 = $_GET['pos'];

$n = urlencode($n1);
$c = urlencode($c1);
$p = urlencode($p1);

echo $n;
echo $c;
echo $p;

请有任何想法。

4

2 回答 2

3

您的问题不是 PHP 代码,而是您的 Objective C 代码。您应该先对字符串进行编码,然后再将它们传递给 PHP。

请更改字符串

    NSData *data =[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:url]];

字符串:

    NSData *data =[[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:[url stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]];

这应该工作!

于 2012-07-29T03:07:32.660 回答
1

对于阿拉伯语,我必须添加到我的 php 代码中:

mysql_query("set character_set_server='utf8'");
mysql_query("set names 'utf8'"); 

并更改我的 Xcode 代码:

NSASCIIStringEncoding

NSUTF8StringEncoding
于 2012-07-29T04:09:07.313 回答