- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サロゲートペアの文字コード→文字変換)
Windows上でのサロゲートペア文字コード→文字変換方法について
このQ&Aのポイント
- Windows上でRubyを使ってサロゲートペアの文字コードを文字に変換する方法を教えてください。
- JavaScriptではString.fromCharCode()を使用し、上位サロゲートと下位サロゲートを指定することで文字を得ることができます。
- Windows XP上で、文字コードの書かれたファイルを読み込んで文字を出力する方法を確認したいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Ruby1.9以降であれば、文字列リテラルでUnicodeエスケープを使うか、pack して force_encoding すればできます。 例えば U+29E3D のホッケはサロゲートペアで表すと D8 67 + DE 3D なので、 s = "\u{d867}\u{de3d}" puts s とすれば出力できます。 あるいは、バイトデータからですと、 a = 0b111011011010000110100111 b = 0b111011011011100010111101 s2 = [a, b].map{|i| [i.to_s(2)].pack("B*").force_encoding("utf-8") }.join puts s2 です。 この場合はto_s(2)で2進数表現にしているのでB*でpackしてます。
お礼
Ruby1.9はワンクリック・インストーラーがなくて、前回インストールしようとしてよくわからなかったので躊躇していたのですが、結局Ruby1.9.1を入れたらすんなりうまく行きました。 簡潔で適切なお答え、ありがとうございました。 大変助かりました。
補足
早速の回答ありがとうございます。 でもすみません、書き忘れていましたがRubyのバージョンは1.8.6なんです。 1.8.6の場合はどのようにすればいいのでしょうか? ご存じでしたら教えてください。