我使用我的ios(Simutalor)链接到远程数据库。代码如下:
-(NSMutableArray*)query:(NSString *)sql
{
if(!myconnect)
{
NSLog(@"Please connect first");
return nil;
}
NSMutableArray *recordsArray = [[[NSMutableArray alloc] init] autorelease];
mysql_query(myconnect, [sql UTF8String]);
MYSQL_RES* result = mysql_store_result(myconnect);
int num_rows = mysql_num_rows(result);
int num_fields = mysql_num_fields(result);
for(int i=0;i<num_rows;i++)
{
MYSQL_ROW row = mysql_fetch_row(result);
NSMutableArray *recordArr = [[NSMutableArray alloc] init];
for(int j=0;j<num_fields;j++)
{
if (row[j]==nil) {
j++;
[recordArr addObject:@""];
continue;
}
NSString* value= [NSString stringWithUTF8String:row[j]];
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
[recordArr addObject:value];
}
[recordsArray addObject:recordArr];
[recordArr release];
}
return recordsArray;
}
如果值是中文,它将以'?'显示。我试过可能编码的方法,但我失败了。 为什么呢?
答案 0 :(得分:0)
您需要检查前端和后端的字符编码。如果你的后端编码是正确的,你仍然需要纠正前端。