3

RubyでUCS2(1文字あたり2バイト)の文字列をUTF8文字列に変換する方法は?

4

3 に答える 3

4

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

具体的には、

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

変換を処理する必要があります。

于 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 に答える