A Name consists of an ordered list of Relative Distinguished Names (RDN). Each RDN consists of an unordered list of typed strings. The types are defined by OID and have long and short description. For example id-at-commonName (18.104.22.168) have the long name CommonName and short name CN. The string itself can be of several encoding, UTF8, UTF16, Teltex string, etc. The type limit what encoding should be used.
GeneralName is a broader nametype that can contains al kind of stuff like Name, IP addresses, partial Name, etc.
Name is mapped into a hx509_name object.
Name string are defined rfc2253, rfc1779 and X.501.
See the library functions here: hx509 name functions