Unicode 用户名以 Σ 作为最后一个字符会导致加载个人资料页面出错

有趣的是,Postgres 在这里也会失败:

[2] pry(main)> DB.query_single('select lower(?)', 'ΣΠΥΡΟΣ')
=> ["σπυροσ"]

或许我们应该在 Discourse 内部处理计算 username_lower 的方法中,专门针对这种特殊情况做处理?

找出所有调用 username_lower 的方法,将它们重定向到一个中央函数,然后在此处允许这种特殊情况(我想,如果需要的话,我们可以在这里使用 mini_racer 调用,或者简单地调用 .lower,然后使用 sub 调用进行修正)。

在此处更新原帖标题,使其更清晰。

3 个赞