Thanks for the info. So it seems this is likely to be a problem with the keyboard implementation, maybe if I use another keyboard it would let me use emojis. I was considering using a Web Dialog instead, but I found out that HTML <input type="password"> has the same restrictions on the charset. The only solution that would work for any keyboard is to use multi-row type (I want to allow any Unicode character in the password) but the text won't be hidden.
Is there a way to use JS in a Web Dialog to have better control of the charset? If not, then the best solution would be to create a customized keyboard inside the Web Dialog using HTML, CSS, and JS