ユニコードで中国語の辞書を見つけました。ルビでユニコードを文字に変換する
p "国".unpack("U*").first #this gives the unicode 22269
どのように逆になる文字値に戻す22269
を変換することができます..私はこの辞書のうち文字のデータベースを構築しようとしているが、私は文字にユニコードに変換する方法がわかりません上記の行の
ユニコードで中国語の辞書を見つけました。ルビでユニコードを文字に変換する
p "国".unpack("U*").first #this gives the unicode 22269
どのように逆になる文字値に戻す22269
を変換することができます..私はこの辞書のうち文字のデータベースを構築しようとしているが、私は文字にユニコードに変換する方法がわかりません上記の行の
[22269].pack('U*') #=> "国" or "\345\233\275"
編集:(1.8.6で確認し、1.8.7、および1.9.2)1.8.6+で動作します。 1.8.xでは、単一のUnicode文字を表す3バイトの文字列が得られますが、puts
を使用すると、正しい漢字が端末に表示されます。
あなたがルビーのどのバージョンを使用していますか? – Phrogz
私はrvmを持っているので、問題ではありません。 1.9.2を含む何か提案は大歓迎です。 – s84
多くのテキストを変換する場合は、コアの一部であるRubyの[IConv](http://ruby-doc.org/stdlib/libdoc/iconv/rdoc/index.html)モジュールを見たいかもしれませんとしょうかん。 [rubydoc.info](http://rubydoc.info/stdlib/iconv/1.9.2/frames)にもドキュメントがあります。 James Edward Grayは、[iconvでのコンバージョンをiconv]という素晴らしい記事をしました(http://blog.grayproductions.net/articles/encoding_conversion_with_iconv)。 IConvの素晴らしい点は、一致するものがない場合には字体を変えることができることです。つまり、類似した文字に変更するか無視することで、変換が制御された形で低下します。 –