如何在命令提示符中使用Ruby打印Unicode字符

3
我想知道如何打印Unicode字符,例如日语或者有趣的字符。
我可以使用以下代码打印心形符号:
hearts = "\u2665"
puts hearts.encode('utf-8')

我应该如何在命令提示符中使用Ruby打印更多的Unicode字符?我的方法适用于一些字符,但并不适用于所有字符。如果您能提供代码示例,那将是非常有帮助的。

我的方法可以处理一些字符,但不是所有的字符都能处理。哪些字符无法处理? - Stefan
@stefan,我之前没有和太多人一起工作,基本上只有牌组中的牌面能正常工作。更新后的答案很好用!我刚刚试了一下 :D - Adjam
1个回答

5

如果十六进制数位数不是4位,你需要用{}括起来unicode字符(来源: /u/Stefan)例如:

heart = "\u2665"
package = "\u{1F4E6}"
fire_and_one_hundred = "\u{1F525 1F4AF}"
puts heart
puts package
puts fire_and_one_hundred

或者你也可以直接在源代码中输入Unicode字符,这在macOS上非常容易,只需使用默认情况下通过Ctrl+Command+Space访问的Emoji和Symbols菜单 (类似的菜单可以在Windows 10上通过Win+;在大多数应用程序中访问,包括您的文本编辑器/Ruby IDE)。

macOS Emoji Menu

heart = "♥"
package = ""
fire_and_one_hundred = ""
puts heart
puts package
puts fire_and_one_hundred

输出:


在 macOS 终端中是这样的:

在 macOS 终端中是这样的


1
如果十六进制数字的位数不是4位,您需要在{和}中括起来Unicode字符。 - Stefan
@Stefan 更新了答案。 - Sash Sinha
代码可以运行,但在命令提示符中出现了一个问号字符的方框。 - Adjam
@Adjam,你用的是哪个操作系统?我添加了一个在macOS终端中的外观截图。 - Sash Sinha
1
@shash678 这个更新后的解决方案效果好多了!非常棒的答案!它在Ubuntu上(我的系统)运行良好。 - Adjam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接