3

これが私のコードで、英語の単語を1つ渡すと正常に機能しますが、スペースやアラビア語を含む複数の単語を渡すと機能しません。

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コードではなく、ObjectiveCコードにあります。文字列を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 に答える