Unicode username with Σ as the final char leads to an error loading profile page

Interestingly Postgres also fails here:

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

Perhaps we should simply special case this quirk in our internal Discourse method that handles calculating username_lower ?

Find all the methods that call username_lower pipe them to a central function and then have this special case allowed for (I guess we can use a mini_racer call here if we wish or simply call .lower and fix it up afterwards with a sub call)

Updating the OP title here to make it clearer.

3 Likes