What characters can be used in domain name?

All the numbers (0-9), letters (a-z) (ASCII),  the hyphen (-)  an all the characters NON ASCII which belong to the charset indicated in the “Technical Guideline”. A domain name cannot begin or end with a hyphen (-); and the first four characters cannot be the sequence "xn--", which is reserved for the IDN code of a domain name.