Destio небольшой блог

Как сохранить файл в кодировке UTF-16LE с BOM в Ruby

Эти депрекейтед средневековые двухбайтовые кодировки все еще находят некоторое применение в повседневной жизни, поэтому вот что мне пришлось сделать, чтобы сохранить файл в UTF-16LE (Little Endian) с BOM. Это я делал в Ubuntu, где родная кодировка UTF-8, но, наверное, для руби нет разницы.

Итак, наши участники – finalXML, это XML объект из Nokogiri, который сам по себе в UTF-8. inputFilename – этот мы хотим получить в UTF-16LE благодаря прихотям некоторых любителей старины. Он еще не существует на момент исполнения этого куска. В общем нужно просто открыть файл, указав кодировку, и вручную дописать два байта BOM.

result = open(inputFilename, "w:UTF-16LE")
result.write("\uFEFF") #little endian BOM
result.write(finalXML)
result.close

Для UTF-16BE скорее всего все точно так же, только открыть файл с кодировкой "w:UTF-16BE" и поставить Big Endian BOM “\uFFFE”

Ярлыки: , , ,


Ближайшие сообщения:

Похожие сообщения:

Комментарии к этой записи отключены.