Ho abilitato alcuni caratteri Unicode nei nomi utente e tutto funziona come previsto.
Quando ho provato a utilizzare caratteri Unicode in uno slug di categoria, è stato convertito in codifica percentuale e ho potuto salvare le modifiche, ma non sono più riuscito ad accedere all’elenco dei topic della categoria perché ricevevo ERR_TOO_MANY_REDIRECTS.
Sembra di averlo risolto utilizzando la console di Rails:
In passato è stato svolto del lavoro su questo argomento, ma non credo che il problema che hai riscontrato sia stato risolto. Credo che quanto accaduto sia dovuto al fatto che hai impostato il metodo di generazione degli slug su ‘ascii’ e hai inserito direttamente uno slug di categoria contenente caratteri non ascii. Posso riprodurre questo problema sul mio sito impostando il metodo di generazione degli slug su ‘ascii’ e inserendo il seguente testo (yetersizliği) direttamente nel campo Slug della Categoria:
Il tentativo di caricare l’elenco di quella categoria fallisce.
Se non inserisco nulla nel campo Slug della Categoria, Discourse crea lo slug correttamente quando il metodo di generazione degli slug è impostato su ‘ascii’.
Con il metodo di generazione degli slug impostato su ‘encoded’, Discourse gestisce correttamente la creazione dello slug sia quando lascio vuoto l’input dello Slug della Categoria sia quando inserisco direttamente lo slug non ascii nell’input.
Sembra quindi che il problema consista nel fatto che, quando il metodo di generazione degli slug è impostato su ‘ascii’, è ancora possibile inserire slug non ascii nel campo Slug della Categoria. Questo causa un problema di reindirizzamento che può essere risolto solo dalla console di Rails.
È esattamente quello che ho fatto: stavo modificando una categoria già creata, sia il suo nome che lo slug. Non conoscevo l’impostazione metodo di generazione dello slug e, anche se in seguito ho scoperto che era impostata su ascii, lo slug è stato comunque codificato.
Questo tipo di coercizione potrebbe avere senso, ma solo se lo slug codificato può essere riconosciuto in seguito, ignorando l’impostazione in modo simile.