# Nome de usuário Unicode com Σ como caractere final causa erro ao carregar página de perfil

**URL:** <https://meta.discourse.org/t/unicode-username-with-as-the-final-char-leads-to-an-error-loading-profile-page/173182>\
**Category:** Bug\
**Created:** [Dezembro 13, 2020, 11:24pm UTC](https://meta.discourse.org/t/unicode-username-with-as-the-final-char-leads-to-an-error-loading-profile-page/173182 "2020-12-13T23:24:31Z")\
**Posts on this page:** 1\
**Showing post:** 37

<div class="post-metadata">

**Author:** ![gerhard](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gerhard/32/119479_2.png) [@gerhard](https://meta.discourse.org/u/gerhard)\
**Post date:** [Dezembro 22, 2020, 1:43pm UTC](https://meta.discourse.org/t/unicode-username-with-as-the-final-char-leads-to-an-error-loading-profile-page/173182/37 "2020-12-22T13:43:25Z")

</div>

> [@chrispanag](#):
>
> Aparentemente, existem outros caracteres Unicode que têm transformações semelhantes, por exemplo: ‘ß’ → ‘SS’ (alemão)

Precisamos nos preocupar apenas com os caracteres onde a implementação da conversão para minúsculas em JavaScript e Ruby difere. Não o contrário.

Não há uma regra única sobre como a letra minúscula alemã “ß” é convertida para maiúscula. Pode ser “SS”, “SZ” ou até mesmo a nova letra maiúscula “ẞ” (sim, há uma diferença sutil). Reverter esse processo só é possível para “ẞ”, e isso funciona corretamente tanto no Ruby quanto no JavaScript.

* * *

Acho que devemos fazer o seguinte:

1. Mesclar a solução alternativa de @sam para corrigir o problema imediato
2. Remover `LOWER(username)` das consultas SQL, pois é simplesmente uma coisa ruim de se fazer (por exemplo, falta de normalização Unicode)
3. Esperar que o Ruby corrija o problema subjacente
4. A longo prazo: Pensar em adicionar IDs de usuário às rotas. Acredito que a parte mais difícil será descobrir como lidar com aspas e menções.

---

_[View the full topic](https://meta.discourse.org/t/unicode-username-with-as-the-final-char-leads-to-an-error-loading-profile-page/173182)._
