Ruby和Accented角色

时间:2011-04-10 20:40:58

标签: ruby utf-8 non-ascii-characters

以下文字墙的摘要:如何在Ruby中显示重音字符(因此它们通过put等工作)?


您好!我正在为我的班级编写一个程序,用西班牙语显示一些句子。当我尝试在Ruby中使用重音字符时,它们无法正确显示(在NetBeans输出窗口中(在Java中显示重音字符)或命令提示符中。

起初,我的一些代码甚至没有运行,因为我的数组中的重音字符丢掉了Ruby中断器(我猜?)。我得到像Ruby这样的错误,期待一个结束。

但我做了一些研究,并找到了一个解决方案,将以下代码行添加到我的Ruby文件的开头:

# coding: utf-8

在NetBeans中,无论此行如何,我的程序都会运行。但我需要添加此行以使我的程序在命令提示符下成功运行。 (我不知道为什么。)

然而,我仍然在向屏幕显示字符时遇到问题。诸如“será”之类的单词将在NetBeans输出窗口中显示为“seré”。在命令提示符下,它会绘制很少的管道字符(我不知道如何键入)。

做了一些研究,我听说过:

$KCODE = 'UTF-8'

但是我没有运气。


我正在使用Ruby 1.8和1.9(我在不同的机器之间来回)。

谢谢, 德里克

1 个答案:

答案 0 :(得分:3)

默认情况下,Windows 7中的命令提示符具有光栅字体。它不支持unicode。首先,您应该将cmd字体更改为Lucida ConsoleConsolas。然后使用chcp 65001更改命令提示符的代码页。您可以手动执行此操作或将此行添加到您的ruby程序中:

# encoding: utf-8
`chcp 65001` #change cmd encoding to unicode
puts 'será test '