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