У меня есть код vb6, который упорно пишет в Windows-1252.
Open fileName For Binary Access Write As #fileNo
Put #fileNo, , contents
Close #fileNo
Сделав это, мне удалось заставить его писать в UTF-16 (LE);
contents = ChrW$(&HFEFF&) & contents
Можно ли как-то легко заставить его писать в ISO-8859-1? Примеры/предложения будут очень признательны здесь.
Put
счастливо записываетx{FEFF}
как\xFF\xFE
(маленький порядок следования байтов UTF-16), как следует из вопроса, то это предполагает, что (например)\x20
будет записано как\x20\x00
. Другими словами, я предполагаю, что он записывает подлинный UTF-16LE, а не просто ASCII, которому предшествует UTF-16LE BOM. - person ruakh   schedule 30.11.2011content
является строкой (массив байтов терпит неудачу из-за несоответствия типов), содержащейwibble
, приведенный выше код записывает77 69 62 62 6C 65
. Добавление поддельной спецификации в строку просто приводит к тому, что она добавляет3F
к началу двоичных данных. - person Deanna   schedule 30.11.2011