Рубиновые и Акцентные Персонажи - PullRequest
6 голосов
/ 11 апреля 2011

Краткое содержание стены ниже: Как я могу отображать символы с акцентом (чтобы они работали через путы и т. Д.) В Ruby?


Здравствуйте!Я пишу программу для моего класса, которая будет отображать некоторые предложения на испанском языке.Когда я пытаюсь использовать символы с акцентированием в Ruby, они отображаются некорректно (в окне вывода NetBeans (в котором хорошо отображаются символы с акцентом на Java) или в командной строке).

Сначала часть кодадаже не запускался, потому что акцентированные символы в моих массивах сбрасывали прерыватель Ruby (я полагаю?).Я получил ошибки, как будто Ruby ожидал закрывающую скобку.

Но я провел небольшое исследование и нашел решение добавить следующую строку кода в начало моего файла Ruby:

# coding: utf-8

В NetBeans моя программа работала независимо от этой строки.Но мне нужно было добавить эту строку, чтобы моя программа успешно работала в командной строке.(Я не знаю почему.)

Однако у меня все еще есть проблема с отображением символов на экране.Слово «será» будет отображаться в окне вывода NetBeans как «serû.И в командной строке он рисует маленькие символы канала (которые я не знаю, как печатать).

Проводя еще несколько исследований, я слышал о:

$KCODE = 'UTF-8'

но мне не повезло с этим.


Я использую Ruby 1.8 и 1.9 (я перехожу между разными машинами).

Спасибо, Дерек

1 Ответ

3 голосов
/ 16 апреля 2011

В командной строке Windows 7 по умолчанию используются растровые шрифты. И это не поддерживает Unicode. Сначала вы должны изменить шрифт cmd на Lucida Console или Consolas. А затем измените кодовую страницу командной строки с помощью chcp 65001. Вы можете сделать это вручную или добавить эту строку в вашу программу ruby:

# encoding: utf-8
`chcp 65001` #change cmd encoding to unicode
puts 'será test '
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...