Я пытаюсь сохранить арабский текст в My SQL.
Моя таблица SQL имеет сортировку как utf8_general_ci
У меня есть текстовое поле в приложении iPhone, и я сохраняю данные с помощью PHP.
Код PHP выглядит ниже.
$con = mysql_connect(localhost, $username, $password); @mysql_select_db($database) or die("Unable to select database"); $propType = $_POST['propType']; $price = $_POST['price']; $type = $_POST['type']; $zone = $_POST['zone']; $location = $_POST['location']; $no_floor = $_POST['no_floor']; $no_apt = $_POST['no_apt']; $basement = $_POST['basement']; $area = $_POST['area']; $addedBy = $_POST['addedBy']; $imagePath = $_POST['imagePath']; $saleType = $_POST['dummy001']; $mauka = $_POST['mauka']; $mobileNumForDial = "0"; $result = mysql_query("SELECT mobileNumber FROM userInfo WHERE username='$addedBy'"); while($data = mysql_fetch_row($result)){ $mobileNumForDial=$data[0]; } $sql = mysql_query("INSERT INTO buildingData (propType, price, type, zone, location, no_floor, no_apt, basement, area, addedBy, imagePath, dummy001, dummy002, mauka) VALUES ('$propType', '$price', '$type', '$zone', '$location', '$no_floor', '$no_apt', '$basement', '$area','$mobileNumForDial','$imagePath', '$saleType', '', '$mauka')");
Код iPhone выглядит ниже
if ([btnImage.accessibilityIdentifier isEqualToString:@"no_image"]) { imageSet = @"missing"; } else { imageSet = @"set"; } post = [[NSString alloc] initWithFormat:@"propType=%d&price=%@&type=%d&zone=%d&location=%d&no_floor=%d&no_apt=%d&basement=%d&area=%@&addedBy=%@&imagePath=%@&dummy001=%d&mauka=%@", realEstatePV.selectedItem, priceData.text, typePV.selectedItem, areaPV.selectedItem, regionPV.selectedItem, floorData.text.intValue, aptData.text.intValue, basementPV.selectedItem, areaData.text, [keychainItem objectForKey:kSecAttrAccount], imageSet, salePV.selectedItem, mauka.text]; postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; postLength = [NSString stringWithFormat:@"%d", [postData length]]; url = [NSURL URLWithString:@"http://www.smart-kw.com/sama/saveBldgData.php"]; NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url]; [theRequest setHTTPMethod:@"POST"]; [theRequest setValue:postLength forHTTPHeaderField:@"Content-Length"]; [theRequest setHTTPBody:postData]; NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; if( theConnection ) { indicator.hidden = NO; [indicator startAnimating]; webData = [[NSMutableData data] retain]; } else { NSLog(@"Internet problem maybe..."); }
Когда я храню английские данные, все в порядке.
Однако, когда я печатаю арабский текст, он хранится как ??? в базе данных mysql.
Любая идея, почему это происходит?
Я также пытался с ниже, но все же данные хранятся как * ???
mysql_query("SET NAMES 'utf8'"); mysql_query('SET CHARACTER SET utf8'); $sql = mysql_query("INSERT INTO buildingData (propType, price, type, zone, location, no_floor, no_apt, basement, area, addedBy, imagePath, dummy001, dummy002, mauka) VALUES ('$propType', '$price', '$type', '$zone', '$location', '$no_floor', '$no_apt', '$basement', '$area','$mobileNumForDial','$imagePath', '$saleType', '', '$mauka')");
Попробуйте установить postData для кодирования с помощью UTF 8 вместо кодировки ASCII:
postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
Попробуй:
[theRequest setValue:@"charset=UTF-8" forHTTPHeaderField:@"Content-Type"];