如何将txt文件从UTF-8转换为UTF-16?

时间:2011-01-28 05:56:46

标签: ruby utf-8 utf-16

是否有任何脚本(批处理脚本或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 个答案:

答案 0 :(得分:1)

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"

答案 1 :(得分:0)

实际上,UTF-8是Unicode的一种形式。