idn_to_ascii('fa?.de');
will return fass.de
(Due to Germans using the ? symbol as a contraction of ss)
idn_to_ascii('fa?.de', IDNA_NONTRANSITIONAL_TO_ASCII);
will return xn--fa-hia.de
(This is the correct behavior too allow fa?.de and fass.de to be registered as different domain names.)
idn_to_utf8('xn--fa-hia.de');
will return fass.de
idn_to_utf8('xn--fa-hia.de', IDNA_NONTRANSITIONAL_TO_UNICODE);
will return fa?.de
(Again this is the correct behavior.)