Ordem SQLite Por lugares umlauts & caracteres falsos no final

Estou usando o Phonegap para fazer um aplicativo de dicionário para iOS.

Ao consultar o banco de dados para uma lista alfabética eu usoCOLLATE NOCASE:

ORDER BY term COLLATE NOCASE ASC

Isso resolveu o problema de que os termos que começam com uma letra minúscula fossem acrescentados ao final (escolhidos a partir deaquela questão).

No entanto, caracteres não-padrão como öäüéêè ainda são classificados no final - aqui 2 exemplos:

    Expected: Öffnungszeiten     Oberved: Zuzahlung
              Zuzahlung                   Öffnungszeiten

(or)          clé                         cliquer sur
              cliquer sur                 clé

Eu olhei em volta e encontrei assuntos semelhantes discutidosAqui ouAqui mas parece que o conselho geral é instalar algum tipo de extensão

Esta extensão provavelmente pode ajudá-lo ...

... use a UTI como uma extensão

O SQLite suporta integração com o ICU ...

Mas não tenho certeza se isso é aplicável na minha situação em que o banco de dados não está hospedado sozinho, mas em execução no dispositivo do cliente. Então eu acho que eu deveria enviar esta extensão com meu pacote de aplicativos.
Eu não estou muito familiarizado com o iOS, mas tenho a sensação de que seria complicado - pelo menos.

Também emo fórum oficial Eu encontrei essa dica:

SQLite does not properly handle accented characters.

e um pouco abaixo no texto, o cartaz menciona um bug no SQLite.

Todos os links que encontrei não estão ativos há mais de 1 ano e nenhum deles parece lidar com o ambiente móvel no qual estou desenvolvendo atualmente.
Então eu queria saber se alguém encontrou uma solução em seus projetos iOS.

A documentação afirma que eles são apenas 3 opções COLLATION padrão:

6.0 Sequencias de Agrupamento

Quando o SQLite compara duas strings, ele usa uma seqüência de intercalação ou uma função collating (duas palavras para a mesma coisa) para determinar qual string é maior ou se as duas strings são iguais. O SQLite possui três funções de agrupamento internas: BINARY, NOCASE e RTRIM.

BINARY - Compares string data using memcmp(), regardless of text encoding.
NOCASE - The same as binary, except the 26 upper case characters of ASCII are folded to their lower case equivalents before the

comparação é realizada. Note que apenas caracteres ASCII são dobrados em maiúsculas. O SQLite não tenta fazer a dobra completa do caso UTF devido ao tamanho das tabelas necessárias. RTRIM - O mesmo que binário, exceto que os caracteres do espaço à direita são ignorados.

Por enquanto, meu melhor palpite seria fazer a classificação em JavaScript, mas suspeito que isso não faria nada de bom para o desempenho geral.

questionAnswers(1)

yourAnswerToTheQuestion