There rings a bell with your problem description. It's a while ago, but I remember now that I'm having similar problems with one of my apps and non-ASCII characters. Since you are using the MATCH operator I assume you are also using the FTS3 extension. I just found this piece of information on the documentation page for FTS:
*All uppercase characters within the ASCII range (Unicode codepoints less > than 128), are transformed to their lowercase equivalents as part of the > tokenization process. Thus, full-text queries are case-insensitive when > using the simple tokenizer. * > (source: http://sqlite.org/fts3.html#tokenizer) That may explain why French accented lower-case letters are not correctly matched against their upper case equivalents, since they are effectively ignored by the default tokenizer. The same page mentions further down that the "unicode61" tokenizer implementation solves that problem correctly, however it looks like it is only available for FTS4, which in turn is only available since Android ICS (see http://stackoverflow.com/questions/6339022/sqlite3-fts4-match-and-android). A dirty workaround would be to create an "OR"ed match query for both upper case and lower case versions of accented letters: SELECT * FROM MyTable WHERE content MATCH 'Écuter OR écuter' This however can get out of hand the more accented letters are contained in your search query. But if the data in your database is written according to standard writing rules (all lower case letters except for titles and words at the beginning of a sentence) you could focus just on the first letter of the search term for creating those "OR"ed match queries. On Saturday, April 18, 2015 at 4:03:28 AM UTC-7, Doug Gordon wrote: > > Similar questions have been asked, but many are old and it's not clear > to me exactly what the resolution is. I have a list filter with a local > db query that is matching columns against user input (uses MATCH, but > that is probably not significant). Both the contents of the columns and > the user input can be mixed case, but the match should be > case-insensitive. This has been working (for years!) for most > situations, but it was recently pointed out to me by a user (in France) > that if he inputs a lowercase accented character, e.g. é, it will not > match a database entry containing the uppercase equivalent, e.g. É. > > My understanding is that Android SQLite does not support this > automatically as it does for ASCII characters, but is there a solution > within Android? I have no control over what is in the database (it comes > from an outside source) or what the user inputs. > > Doug Gordon > GHCS Software > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

