2

ファイルPHPに2つのPOSTパラメーターを送信するアプリケーションを作成し、データベースにデータを保存します。

パラメータを送信するxcodeプロジェクトへのコードは次のとおりです。

NSString *post = [[NSString alloc] initWithFormat:@"&key1=%@&key2=%@", myString1, myString2];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.mysite.com/test.php"]]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

データベースにデータを保存する PHP ファイルのコードは次のとおりです。

$val1 = $_POST['key1'];
$val2 = $_POST['key2'];
$val1 = urldecode($val1);
$val2 = urldecode($val2);

$sql = "INSERT INTO test(nome, cognome) VALUES ('$val1', '$val2')";
mysql_query($sql);

問題は、特殊文字 (たとえばé、または) を含むパラメーターを挿入すると、プログラムがデータベースの通常の文字 (および)äに保存されることです。ea

誰かがこれで私を助けることができますか?

4

1 に答える 1

2
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

ここでの問題は、ASCII を使用しているが、ASCII には é や ä などが含まれていないことです。代わりに Unicode を使用する必要があります。上記のコードで切り替えNSASCIIStringEncodingてみてください。NSUTF8StringEncoding

于 2013-03-01T15:32:45.853 に答える