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)), ("langID", hex(self.langID)),
] ]
if not self.encodingIsUnicodeCompatible(): if unistr is None or not self.encodingIsUnicodeCompatible():
attrs.append(("unicode", unistr is not None)) attrs.append(("unicode", unistr is not None))
writer.begintag("namerecord", attrs) writer.begintag("namerecord", attrs)

View File

@ -47,6 +47,14 @@ class NameRecordTest(unittest.TestCase):
'</namerecord>' '</namerecord>'
], self.toXML(name)) ], 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): def test_toXML_macroman(self):
name = self.makeName("Foo Italic", 222, 1, 0, 7) # MacRoman name = self.makeName("Foo Italic", 222, 1, 0, 7) # MacRoman
self.assertEqual([ self.assertEqual([