Name change: better unicode handling (#3164)
* Name change: better unicode handling Client-side: * Changes the NameChangeModal to show text "Over limit" when a proposed display name is too long. * Allows names to go over limit to prevent splitting graphemes on input. Server-side: * Changes the MakeSafeStringOfLength to count number of unicode code points instead of string bytes. * name modal: check that newName is defined before iterating
This commit is contained in:
@@ -18,10 +18,14 @@ func MakeSafeStringOfLength(s string, length int) string {
|
||||
newString := s
|
||||
newString = StripHTML(newString)
|
||||
|
||||
if len(newString) > length {
|
||||
newString = newString[:length]
|
||||
// Convert utf-8 string into Unicode code points.
|
||||
codePoints := []rune(newString)
|
||||
|
||||
if len(codePoints) > length {
|
||||
codePoints = codePoints[:length]
|
||||
}
|
||||
|
||||
newString = string(codePoints)
|
||||
newString = strings.ReplaceAll(newString, "\r", "")
|
||||
newString = strings.TrimSpace(newString)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user