我现在已经有这个问题很久了,我无法解决它。
会发生什么事情,当我从我的iPhone代码发出请求时,我从服务器获取数据,并且它应该是" UTF格式",但它有时是,有时只是,不是吗?我知道这个原因似乎是,当使用编码将数据字节转换为字符串时,我有时得到一个零结果,这意味着字符串不在给编码中。我把这段代码放在一个循环中,经过几次尝试,我得到了我的字符串" utf8"正确的编码,但即便如此,还有这个" tail"在原始字符串之后的未知字节,比如说服务器数据应该以{{1}}结尾,而是以--af~~
或类似的结尾。
php方面:
--af~~∆^ø
blablas在那里作为真实价值的占位符,我想保持私密
对象: <?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();
?>
我现在很长时间都在挣扎,希望有些人可以指导我:(
修改
我还应该提一下,有一个名为&#34; config.php&#34;的包含的php文件。你可以看到,我也把它放进去,没有帮助
+(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;
}
php本身也以utf8编码
EDIT2: 所以我这样做了:
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $connect);
我打印出来的是:
NSLog(@"%@",[data bytes]);
我不明白这些价值应该是什么?
这是数据对象的内存视图
捕获的净流量给了我这个,并且:S
答案 0 :(得分:0)
您可以尝试创建一个json对象&amp; base64对它进行编码。