Android: use Upper function for Unicode string

Hello!
In my sqlite database I need finding record using ‘like’ syntaxes. The search must be case insensitive and work for Unicode.

When I execute query:
select 1 where Upper(‘москва’) like '%МОСКВА%'
for non encrypted sqlite database (without SQLCipher) or with version 3.4.0, I get one record.
On encrypted sqlite database with SQLCipher version 3.5.x I get zero record.

What do I need to do to, to return support ICU for encrypted database?

With respect,
Alexander

1 Like

Hello @alisichkin

SQLCipher for Android removed ICU support in the 3.5 series release for support on Android 7:

Adding support for ICU to the library would require a custom build and/or extension to the library.

The user @alisichkin has the same issue as me, and I created a post https://discuss.zetetic.net/t/build-custom-android-sqlcipher-with-icu-support/5966/1 before realizing that he had already created a very similar post.

My question is:
ok i need ICU and Sqlcipher, are there a way to do a custom build with icu support ? And in this case the app could crash on Android N devices ?

Thanks and apologize for the duplicate post

Hello @aeroxr1,

ICU support was removed from the original SQLCipher for Android library with the release of 3.5.1 almost 7 years ago. At the time, the integration required a large external data source and was cumbersome from an integration perspective. While it’s possible to integrate ICU with the newer version of SQLCipher for Android, we do not have information to share on the process. If you are looking for a supported solution, please feel free to reach out directly here support@zetetic.net to discuss a custom build.