Ativei (alguns) caracteres Unicode em nomes de usuário e tudo funciona conforme o esperado.
Quando tentei usar caracteres Unicode em um slug de categoria, ele foi convertido para codificação percentual e permiti que as alterações fossem salvas, mas não consegui mais acessar a lista de tópicos da categoria porque recebia ERR_TOO_MANY_REDIRECTS.
Parece que resolvi o problema usando o console do Rails:
Isso não é um impedimento crítico, mas pode quebrar funcionalidades, então sugiro que a funcionalidade seja totalmente implementada ou que haja uma proteção contra isso.
Algum trabalho já foi feito sobre isso no passado, mas não acho que o problema que você encontrou tenha sido resolvido. O que acho que aconteceu é que você tem o método de geração de slug definido como ‘ascii’ e inseriu diretamente um slug de categoria que contém caracteres não-ascii. Posso reproduzir esse problema no meu site com o método de geração de slug definido como ‘ascii’ e o seguinte texto (yetersizliği) inserido diretamente no campo Slug da Categoria:
Tentar carregar essa lista de categorias então falha.
Se eu não inserir nada no campo Slug da Categoria, o Discourse criará o slug corretamente quando o método de geração de slug estiver definido como ‘ascii’.
Com o método de geração de slug definido como ‘encoded’, o Discourse lida corretamente com a criação do slug tanto quando deixo a entrada do Slug da Categoria vazia quanto quando insiro diretamente o slug não-ascii na entrada.
Parece, portanto, que o problema é que, quando o método de geração de slug está definido como ‘ascii’, slugs não-ascii ainda podem ser inseridos no campo Slug da Categoria. Isso causa um problema de redirecionamento que só pode ser corrigido pelo console do Rails.
Foi exatamente isso que fiz. Estava editando uma categoria que já havia sido criada — tanto seu nome quanto seu slug. Não sabia sobre a configuração do método de geração de slug e, mesmo tendo descoberto depois que ela estava definida como ascii, o slug foi codificado de qualquer forma.
Esse tipo de coerção pode fazer sentido, mas apenas se o slug codificado puder ser reconhecido posteriormente, ignorando a configuração de maneira semelhante.