The reason that ASN.1 has all those wacky representations of stings is that it was designed to allow interoperation between many different devices IBM's ebcdic and Telex being two that come to mind.
Takes me back to debugging OSI stacks for BT using a 409 and the days when I used to quote my phone number (and my telex number) on my CV as an x121 address ( form 1 variant 3 )
A lot of those devices are probably still around and being happily used in production.
I wonder for how many years in the future people will still have to fire up their HaskOCamlCoqda 10.4 ASN.1 library to deserialize EBCDIC over an ancient (gasp, wired!) serial port...
I wonder if they have put in the extra code for handling invalid code ICL famously used zero indexing on one bit of x.400 that mandated "must start from 1" (and you wonder why the UK doesn't have a mainframe maker anymore).
and don't get me started on the bodged stack from sprint which blindly ignored the spec!
Takes me back to debugging OSI stacks for BT using a 409 and the days when I used to quote my phone number (and my telex number) on my CV as an x121 address ( form 1 variant 3 )