If Unicode-compatible name failed to decode, write unicode="False"

This commit is contained in:
Behdad Esfahbod 2015-04-22 01:12:05 -07:00
parent 13d53f081c
commit abf7dc6568
2 changed files with 9 additions and 1 deletions

View File

@ -152,7 +152,7 @@ class NameRecord(object):
("langID", hex(self.langID)),
]
if not self.encodingIsUnicodeCompatible():
if unistr is None or not self.encodingIsUnicodeCompatible():
attrs.append(("unicode", unistr is not None))
writer.begintag("namerecord", attrs)

View File

@ -47,6 +47,14 @@ class NameRecordTest(unittest.TestCase):
'</namerecord>'
], self.toXML(name))
def test_toXML_utf16be_broken(self):
name = self.makeName(b"\0F\0o\0o\0", 111, 0, 2, 7)
self.assertEqual([
'<namerecord nameID="111" platformID="0" platEncID="2" langID="0x7" unicode="False">',
' &#0;F&#0;o&#0;o&#0;',
'</namerecord>'
], self.toXML(name))
def test_toXML_macroman(self):
name = self.makeName("Foo Italic", 222, 1, 0, 7) # MacRoman
self.assertEqual([