On 1 Dec 2010, at 14:26, Devarshi Kulshreshtha wrote: > > Problem is - when any string to be inserted contains unicode character such > as: \U00a0 or \U2022 or \U2019, it crashes. > > The part of code which crashes is this- > > NSString *insertQuery = @"insert into XYZ(field1,field2) values > (@"1",[recordDict objectForKey:@"field2"]); > > // recordDict contains value: @"\U00a0 \U00a0 \U00a0 \U00a0The > Cadfsdfsdfptain\U2019s" for key: @"field2" > > sqlite3_stmt *insertStmnt; > const char *sql = [insertQuery cStringUsingEncoding:1];
You have a requested an ASCII encoding using - (const char *)cStringUsingEncoding:(NSStringEncoding)encoding A NULL return indicates that the receiver cannot be losslessly converted to the desired encoding (a clear case of read the manual). The sqlite3_prepare_v2 function prototype indicates that you should be using UTF8 encoding. This will probably handle most of the UTF that you throw at it. int sqlite3_prepare_v2( sqlite3 *db, /* Database handle */ const char *zSql, /* SQL statement, UTF-8 encoded */ int nByte, /* Maximum length of zSql in bytes. */ sqlite3_stmt **ppStmt, /* OUT: Statement handle */ const char **pzTail /* OUT: Pointer to unused portion of zSql */ ); Regards Jonathan Mitchell Developer Mugginsoft LLP http://www.mugginsoft.com_______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com