次のようなUTF-8 16進数の文字列があります。
s = "0059006F007500720020006300720065006400690074002000680061007300200067006F006E0065002000620065006C006F00770020003500200064006F006C006C006100720073002E00200049006600200079006F00750020006800610076006500200061006E0020004100640064002D004F006E0020006F007200200042006F006E0075007300200079006F007500720020007200650073006F00750072006300650073002000770069006C006C00200077006F0072006B00200075006E00740069006C0020006500780068006100750073007400650064002E00200054006F00200074006F00700020007500700020006E006F007700200076006900730069007400200076006F006400610066006F006E0065002E0063006F002E006E007A002F0074006F007000750070"
これを実際のUTF-8文字列に変換したい。それは読むべきです:
クレジットが 5 ドルを下回りました。アドオンまたはボーナスがある場合、リソースは使い果たされるまで機能します。今すぐチャージするには、vodafone.co.nz/topup にアクセスしてください。
これは機能します:
s.scan(/.{4}/).map { |a| [a.hex].pack('U') }.join
しかし、これを行うためのより良い方法があるかどうか疑問に思っています: Encoding#convertを使用する必要があるかどうか。