7

拡張 ASCII 文字をコンソールに出力するにはどうすればよいですか。たとえば、次を使用する場合

puts 57.chr

コンソールに「9」と表示されます。私が使うとしたら

puts 219.chr

「?」のみ表示されます。これは、128 から 254 までのすべての拡張 ASCII コードに対して行われます。「?」の代わりに適切な文字を表示する方法はありますか。

4

4 に答える 4

11

描画文字を使用して、コンソール プログラムでグラフィックを作成しようとしています。

最近は UTF-8 を使うべきです。

Box Drawing Unicode ブロックの文字を使用した例を次に示します。

puts "╔═══════╗\n║ Hello ║\n╚═══════╝"

出力:

╔═══════╗
║ Hello ║
╚═══════╝

たとえば、Unicode 文字 U+2588 (完全なブロック) を使用する場合、それを Ruby のコンソールに出力するにはどうすればよいでしょうか。

以下を使用できます。

puts "\u2588"

また:

puts 0x2588.chr('UTF-8')

または単に:

puts '█'
于 2015-02-24T13:58:38.577 に答える
4

エンコーディングを指定する必要がある場合があります。たとえば、次のようになります。

219.chr(Encoding::UTF_8)
于 2015-02-24T12:52:06.230 に答える
3

文字列のエンコーディングを指定してから、に変換する必要がありますUTF-8。たとえば、Windows-1251エンコーディングを使用する場合:

219.chr.force_encoding('windows-1251').encode('utf-8')
# => "Ы"

同様にISO_8859_1:

219.chr.force_encoding("iso-8859-1").encode('utf-8')
# => "Û" 
于 2015-02-24T12:55:55.290 に答える
0

メソッドを使用できますInteger#chr([encoding])

219.chr(Encoding::UTF_8)   #=> "Û"

詳細については、メソッド docを参照してください。

于 2015-02-24T13:37:13.200 に答える