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

Reply via email to