The getlinegetchar
standard C++ library function is used to read the password from standard input. There is no per character blacklist nor whitelist. This means that any character is accepted. It also means that non ASCII characters are being read as your OS might encoded them. Thus, using non ASCII characters may yield different passwords on different OSes. If you wish to copy a password protected wallet between OSes, you'd be prudent to keep to ASCII characters.