如何转换一个UCS2字符串转换成UTF8?(How do I convert a UCS2 stri

2019-06-23 23:54发布

如何将字符串(每个字符2个字节),也就是在进入UCS2在Ruby中UTF8字符串转换?

Answer 1:

你应该考虑的iconv ,这是Ruby标准库的一部分。 它是专为这个任务。

特别,

 Iconv.iconv("utf-8", "utf-16", str).first

应该处理的转换。



Answer 2:

由于在UCS2编码大多数情况下串字符可以(很少使用与比0x10000的大码UTF-16字符)被表示为UTF-16字符串我想用语言Iconv的是更好的方式转换成字符串。 示例代码:

require 'iconv'

ic = Iconv.new 'UTF-8', 'UTF-16'
utf8string = ic.iconv ucs2string


Answer 3:

随着Ruby 1.9的:

string.encode("utf-8")

如果字符串编码不知道,你可能需要先进行设定:

string.force_encoding("utf-16be").encode("utf-8") # Big-endian
string.force_encoding("utf-16le").encode("utf-8") # Little-endian


文章来源: How do I convert a UCS2 string into UTF8?