peewee.fn.Lower / Upper do not work correctly for some unicode characters
You need to load the ICU extension, which can be compiled in automatically or built as a loadable extension.  Check the sqlite docs on the subject. This is a database-specific problem as opposed to a peewee issue.

Table Q looks like this:

| id | user |
| --- | --- |
| 1 | À |
| 2 | à |

And here is some code doing stuff to it.

``` python
In [1]: [i.id for i in Q.select().where(Q.user == 'À')]
Out[1]: [1]

In [2]: [i.id for i in Q.select().where(Q.user == 'à')]
Out[2]: [2]

In [3]: [i.id for i in Q.select().where(peewee.fn.Lower(Q.user) == 'À')]
Out[3]: [1]

In [4]: [i.id for i in Q.select().where(peewee.fn.Upper(Q.user) == 'à')]
Out[4]: [2]

In [5]: [i.id for i in Q.select().where(peewee.fn.Lower(Q.user) == 'à')]
Out[5]: [2]
```

Peewee version is 2.8.0.  SQLite version 3.7.9
