Olá,
Mantemos um fórum usando o Discourse, e temos uma ferramenta automatizada que faz requisições como:
agent.get(`${this.baseUrl}/admin/users/list/all.json?email=${emailAddress}`)
Recentemente, encontrei um problema onde um desses e-mails continha um caractere %. A requisição get falhou, acredito que por causa do caractere não codificado.
Considerei usar encodeURI na string do e-mail, mas me preocupei que o Discourse possa não realizar a decodificação antes de consultar o e-mail correspondente, levando a potenciais falsos negativos.
Dei uma olhada no código-fonte do GitHub, mas não estou familiarizado com Ruby ou com o repositório o suficiente para saber com certeza.
É seguro usar encodeURI nos endereços de e-mail passados para a rota admin/users/list/all? O Discourse decodificará os parâmetros antes de fazer a consulta?