Strings are held by number, platform, encoding and language. Strings are
Notice that the language is held in an associative array due to its sparse
nature on some platforms such as Microsoft ($pid = 3). Notice also that the
array order is different from the stored array order (platform, encoding,
language, number) to allow for easy manipulation of strings by number (which is
what I guess most people will want to do).
By default, $PDF::API3::Compat::API2::Basic::TTF::Name::utf8 is set to 1, and strings will be stored as UTF8 wherever
possible. The method is_utf8 can be used to find out if a string in a particular
platform and encoding will be returned as UTF8. Unicode strings are always
converted if utf8 is requested. Otherwise, strings are stored according to platform:
***WARNING NON-UTF8 is deprecated and utf8 strings has become the default***
You now have to set <$PDF::API3::Compat::API2::Basic::TTF::Name::utf8> to 0 to get the old behaviour.
Apple Unicode (platform id = 0)
Data is stored as network ordered UCS2. There is no encoding id for this platform
but there are language ids as per Mac language ids.
Mac (platform id = 1)
Data is stored as 8-bit binary data, leaving the interpretation to the user
according to encoding id.
Unicode (platform id = 2)
Currently stored as 16-bit network ordered UCS2. Upon release of Perl 5.005 this
will change to utf8 assuming current UCS2 semantics for all encoding ids.
Windows (platform id = 3)
As per Unicode, the data is currently stored as 16-bit network ordered UCS2. Upon
release of Perl 5.005 this will change to utf8 assuming current UCS2 semantics for
all encoding ids.