gpt4 book ai didi

php - obj c 和 php 错误的字符串编码

转载 作者:搜寻专家 更新时间:2023-10-30 20:28:13 24 4
gpt4 key购买 nike

这个问题困扰我好久了,一直没解决。发生的事情是,当我从我的 iPhone 代码发出发布请求时,我从服务器取回数据,它应该是“UTF 格式”,但它有时是,有时只是,不是吗?我知道这个原因似乎是,当使用编码将数据字节转换为字符串时,我有时会得到一个 nil 结果,这意味着字符串不在给定的编码中。我把这段代码放在一个循环中,经过几次尝试,我得到了正确编码的“utf8”字符串,但即便如此,在原始字符串之后仍有未知字节的“尾部”,比如让我们说服务器数据应该以 --af~~ 但它以 --af~~Δ^ø 或类似的东西结尾。

php 端:

 <?php
include 'config.php';
mysql_query("SET NAMES utf8");


$sifra = $_POST['blabla1'];
$stol =$_POST['blabla2'];
$uname = $_POST['blabla3'];
$ug=array();
$sql=mysql_query("select * from blabla where blabla = '".$sifra."' ");
while($row=mysql_fetch_assoc($sql))
{
$sql2 = mysql_query("select id from blabla where blablabla=".$row['id']." and blabla = '".$stol."';");
while($row2 = mysql_fetch_assoc($sql2))
{
$ug = $row;
echo "true ug:~".$ug['name']."#~".$ug['website_path']."#id~".$ug['id'];
}

}

mysql_query("update blabla");

mysql_close();
?>

blablas 在那里用作我希望保密的真实值的占位符

对象端:

+(NSString*)getPhpDataFrom:(NSString*)addr with:(NSString*)vals
{
for (NSInteger i = 0; i < 5; i = i+1) {
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"blabla"]]];

[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"];
[request setValue:@"utf-8" forHTTPHeaderField:@"charset"];
NSString *body = vals;

NSData *data2=[body dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data2];
[request setHTTPMethod:@"POST"];

NSError *error = nil; NSURLResponse *response = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if (error) {
NSLog(@"Error:%@", error.localizedDescription);
}
else {
//success
NSString* result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
if([result rangeOfString:@"\n"].location != NSNotFound)
result = [result substringToIndex:[result rangeOfString:@"\n"].location];

if(result != NULL || [result isEqualToString:@""]){

return result;
}

else continue;

}
}

return nil;
}

我已经为此苦苦挣扎了很长时间,希望有人能指导我:(

编辑:

我还应该提一下,如您所见,有一个名为“config.php”的包含的 php 文件,我也把它放在里面,没有帮助

mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $connect);

php本身也是utf8编码的

编辑2:所以我这样做了:

NSLog(@"%@",[data bytes]);

我打印出来的是:

Printing description of data->isa:
__NSCFData
Printing description of data:
<74727565 2075673a 7e417175 616d6172 696e237e 61717561 6d617269 6e236964 7e310a>

我不明白这些值应该是什么?

这里是数据对象的内存 View memory view of data object

捕获的网络流量给了我这个,wth :S

enter image description here

最佳答案

您可以尝试创建一个 json 对象并在两端对其进行 base64 编码。

NSData Class Reference - base64EncodedStringWithOptions

Stack Overflow - NSJSONSerialization

关于php - obj c 和 php 错误的字符串编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23679867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com