如何将Extended-ASCII字符打印到控制台。例如,如果我使用以下
puts 57.chr
它会在控制台上打印“9”。如果我要使用
puts 219.chr
它只会显示“?”。它对所有从128到254的扩展ASCII代码执行此操作。是否可以显示正确的字符而不是“?”。
答案 0 :(得分:10)
我正在尝试使用绘图字符在我的控制台程序中创建图形。
现在你应该使用UTF-8。
以下是使用Box Drawing Unicode块中的字符的示例:
puts "╔═══════╗\n║ Hello ║\n╚═══════╝"
输出:
╔═══════╗
║ Hello ║
╚═══════╝
因此,如果我打算使用Unicode字符U + 2588(完整块),我将如何在Ruby中将其打印到控制台。
您可以使用:
puts "\u2588"
或:
puts 0x2588.chr('UTF-8')
或简单地说:
puts '█'
答案 1 :(得分:4)
您可能需要指定编码,例如:
219.chr(Encoding::UTF_8)
答案 2 :(得分: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')
# => "Û"
答案 3 :(得分:0)