The %s
operator does not support unicode characters. As the String Format Specifiers of the String Programming Guide says, it is "Null-terminated array of 8-bit unsigned characters."
Frankly, for other reasons, you shouldn't be using stringWithFormat
anyway (what if one of the strings had a quotation mark in it ... your SQL statement would fail; you're even exposed to SQL injection attacks). You should be using a ?
placeholder instead (with no quotation marks), and then call sqlite3_bind_text
for each of the parameters you want to bind to the respective question mark (note, sqlite3_bind_xxx
functions use a 1-based index, unlike sqlite3_column_xxx
which use a 0-based index).