ruby
1moji = "\u97F3\u9806(\u6607\u9806)" 2puts moji
上記のコードだと自分の環境では"音順(昇順)"と出力されて、これは期待通りなのですが
"\u97F3\u9806(\u6607\u9806)"
テキストファイルに上記のように記述して、このファイルを読み込んでrubyのプログラムで出力した場合、そのまま"\u97F3\u9806(\u6607\u9806)"となります。
文字コードを指定しても同じです。
ruby
1path = "テキストファイルのパス" 2File.open(path) do |f| 3 f.each_line do |line| 4 puts line.force_encoding("utf-8") 5 # 出力 "\u97F3\u9806(\u6607\u9806)" 6 end 7end
ファイルに書き込まれたコードポイントの文字列を
ruby
1puts 0x97F3.chr("UTF-8")
のように文字を分解し一文字ずつ出力すれば期待通りの動作にはなるのですが、もっと良い方法がないかと思い質問しました。
ruby 2.2.4を使用しています。
回答6件
あなたの回答
tips
プレビュー