从ios到php的特殊字符和表情符号

Lok*_*oko 1 php string ios

我看了很多线程,但我找不到正确的解决方案,或者它没有用......它让我很生气^^.

我尝试了很多东西,但没有一个能正常工作.

我的问题很容易..我想;)

我想从我的iPhone发送文本到PHP脚本,然后将其保存在SQL数据库中.

首先,特殊字符不起作用.一个"将是&"(没有\:O)等等.接下来从iphone到php的表情符号改为例如ðŸ~.

这是我的iPhone代码发送文本到PHP:

NSString *post = [[NSString alloc] initWithFormat:@"&action=messageAdd&text=%@"textField.text];
    NSData * postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
    NSString * postLength = [NSString stringWithFormat:@"%d",[postData length]];
    NSMutableURLRequest * request = [[NSMutableURLRequest alloc] init];
    [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://xxxx.com/xx.php"]]];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];
Run Code Online (Sandbox Code Playgroud)

这里是PHP文件中的代码

header('Content-Type: text/html; charset=utf-8');
..
..
..
$text = htmlentities(trim(stripinput($_POST['text'])));
Run Code Online (Sandbox Code Playgroud)

这让我对所有不同的变体感到困惑.我希望有人能引导我朝着正确的方向前进.代码总是欢迎:)

Mat*_*bbi 5

当您将带有表情符号的数据字符串发送到您的php页面时,您必须使用以下编码:

NSData *data = [string dataUsingEncoding:NSNonLossyASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)

如果你必须发送一个这样的数据字符串,你可以用字符串转换它:

NSString str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

所以,你会有一个像\ ucode而不是微笑的字符串.

当您从数据库到应用程序收到字符串时,您可以执行以下操作:

NSString str = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)

而名利已经完成.;)