С python 2.7 я читаю как unicode и пишу как utf-16-le. Большинство символов интерпретируются правильно. Но некоторые из них не являются, например, u'脊', также известный как unichr(33034). Следующий код кода пишется неправильно:
import codecs
with open('temp.txt','w') as temp:
temp.write(codecs.BOM_UTF16_LE)
text = unichr(33034) # text = u'\u810a'
temp.write(text.encode('utf-16-le'))
Но любая из этих вещей, при замене выше, заставит код работать.
unichr(33033) и unichr(33035) работают правильно.
кодировка utf-8 (без спецификации, знак порядка следования байтов).
Как я могу распознавать символы, которые не будут записываться правильно, и как я могу написать файл с кодировкой utf-16-le со спецификацией, которая либо печатает эти символы, либо какую-то замену?