People living in counties which use non-Latin script to write their language often use it to name their WiFi network access points (APs). They work just fine when used in the /etc/wpa_supplicant.conf, but would be reported as hex strings by ifconfig wlan0 list scan, because it considers any character outside 0x20..0x7e range as non-printable.
This probably made sense when 8-bit encondings were common standard, but becomes a nuisance in UTF-8 world. Hence I propose we try to handle the SSID as multibyte string (subject to user's locale) and fallback to hex-dumping when we encounter a character that cannot be recognized, converted, or printed.
I took a step further and also account for the fact that CJK characters are double-width, so mixed CJK/Russian/Latin access points data are now printed correctly aligned in the scan results.