2009-06-23 141 views

答えて

4

Ruby標準ライブラリの一部であるiconvを調べる必要があります。このタスクのために設計されています。

すなわち、

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

変換を処理します。

+1

UCS2は正確ではありませんUTF-16と同じです。(http://en.wikipedia.org/wiki/UTF-16/UCS-2) – PJK

2

ほとんどの場合、文字列はUCS2エンコーディングのUTF-16文字列(UTF-16の文字は0x10000より大きいコードはほとんど使用されません)で表すことができるため、Iconvを使用すると文字列を変換する方が効果的です。 サンプルコード:Ruby 1.9のでは

require 'iconv' 

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

私は今、UTF-16の代わりにうれしくUCS-2LEを使用しています。 –

1

string.encode("utf-8") 

文字列のエンコーディングが知られていない場合、あなたはそれを最初に設定する必要があります。

string.force_encoding("utf-16be").encode("utf-8") # Big-endian 
string.force_encoding("utf-16le").encode("utf-8") # Little-endian 
関連する問題