如何将 UCS2 中的字符串(每个字符 2 个字节)转换为 Ruby 中的 UTF8 字符串?
问问题
7806 次
3 回答
4
于 2009-06-23T15:01:39.177 回答
2
因为在大多数情况下,UCS2 编码中的字符串可以表示为 UTF-16 字符串(在 UTF-16 中,编码大于 0x10000 的字符很少使用)我认为使用 Iconv 是转换字符串的更好方法。示例代码:
require 'iconv'
ic = Iconv.new 'UTF-8', 'UTF-16'
utf8string = ic.iconv ucs2string
于 2009-06-23T15:06:12.427 回答
1
使用 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
于 2012-01-13T15:56:05.747 回答