Юникод! = UTF-8. UTF-8 - это двоичная кодировка Unicode, поэтому просто напишите строку UTF-8 так же, как строку ASCII. Нет необходимости упаковывать закодированную строку либо. Это уже "просто байты".
# coding: utf8
import struct
text = u'我是美国人。'
encoded_text = text.encode('utf8')
# proof packing is redundant...
format = '{0}s'.format(len(encoded_text))
packed_text = struct.pack(format,encoded_text)
print encoded_text == packed_text # result: True
Так что просто закодируйте свои строки Unicode и добавьте их в файл после записи ваших упакованных целых.