I have a text field in an interface and I have defined a character limit of 40. I need to be able to type both English and Greek characters in the field. When I write in Greek, the character limit count shows the double number of characters I actually type, so even if I type one character it shows 2/40. In English, it works properly. I think it is caused by the encoding, but I don’t know and can’t find any documentation on how to fix it. Is there a way to fix this problem? Maybe to configure the app so it reads all Unicode characters with UTF-8? Or is the problem somewhere else?
Discussion posts and replies are publicly visible
The characterLimit description reads "characterLimit (Number (Integer)): Determines the maximum number of characters. Depending on the language, some characters may count as more than one."
It looks like fn!len() might count the character lengths as 1 instead of 2, so your best bet may be to write your own character limit validation using fn!len() instead of using the built-in characterLimit parameter
That's interesting! Counting characters by the bytes they use is a problematic approach.
Peter Lewis, is that a known issue? I typed two Korean characters into a text field and it counted it as 6 characters. That's not exactly intuitive.
It is behaving as designed - since most limits are designed to limit the amount of data that can be written to the database, the character limit is designed to count multiple characters if the byte representation is higher.
Like Dan suggested, the best approach is to add a different validation if you want to validate differently.
Peter Lewis Thanks for sharing details. Its seems that fn!lenb function is used to check length. You can write your own custom validation using fn!len() function as mention by Stefan Helzle and Dan Lluhi
This applies to a!paragraphField as well.