Как преобразовать TXT-файл из UTF-8 в UTF-16? - PullRequest
0 голосов
/ 28 января 2011

Существуют ли какие-либо сценарии (пакетный сценарий или ruby) для изменения кодировки TXT-файла с UTF-8 на UTF-16?

Коды, указанные ниже

требуют 'iconv'

$ RegisterMark = [174] .pack ('U *')

ставит '--------------------'

ставит "$ RegisterMark Vaule:"

ставит $ RegisterMark

ставит $ RegisterMark.encoding

$ utf16RegisterMark = Iconv.conv ('UTF-16', 'UTF-8 ', $ RegisterMark)

ставит' -------------------- '

ставит "$ utf16RegisterMark Vaule:"

ставит $ utf16RegisterMark

ставит $ utf16RegisterMark.encoding

file = File.new ("C: /Output.txt", "w")

file.puts $ utf16RegisterMark

file.close

////////////////////////////////

Вопрос:

  1. Почему $ utf16RegisterMark.encoding является ASCII-8BIT, а не UTF-16?
  2. Откройте файл output.txt с помощью блокнота, проверьте кодировку "Unicode Big endian », как можно разрешить его кодировку Unicode (Unicode litte endian)?

Ответы [ 2 ]

1 голос
/ 28 января 2011
def f x
  x
end

Обновление:

Хорошо, в первоначальном вопросе не упоминалось UTF-16, а просто сказано «Как конвертировать UTF-8 в Unicode?». Так что, черт возьми, теперь я должен думать и обновить с реальным ответом ...

irb(main):002:0> require 'iconv'
=> true
irb(main):003:0> Iconv.conv('UTF-16', 'UTF-8', 'How now brown cow')
=> "\376\377\000H\000o\000w\000 \000n\000o\000w\000 \000b\000r\000o\000w\000n\000 \000c\000o\000w"
0 голосов
/ 28 января 2011

На самом деле UTF-8 - это форма Unicode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...