Китайская кодировка в Ruby

В предыдущих главах мы уже узнали, как выводить "Hello, World!" с помощью Ruby. С английским проблем нет, но если вы выводите китайские символы "hello,world", вы можете столкнуться с проблемами китайской кодировки.

Если кодировка не указана в файле Ruby, во время выполнения возникнет ошибка:

#!/usr/bin/ruby -w

puts "你好,世界!";

Результат выполнения вышеприведённой программы:

invalid multibyte char (US-ASCII) 

Приведённое выше сообщение об ошибке показывает, что Ruby использует кодировку ASCII для чтения исходного кода, и китайские символы будут выглядеть искажёнными. Решение — добавить следующее в начало файла:# -*- coding: UTF-8 -*-(стиль Emacs) или#coding=utf-8достаточно.

Пример

#!/usr/bin/ruby -w # -*- coding: UTF-8 -*- puts "Hello, World!";

Запустить пример »

Вывод:

Hello, world!

Следовательно, если ваш файл исходного кода содержит китайскую кодировку в процессе обучения, нужно учитывать два момента:

  • 1. Необходимо добавить в первой строке:# -*- coding: UTF-8 -*-, что указывает интерпретатору использовать utf-8 для разбора исходного кода.
  • 2. Необходимо настроить редактор так, чтобы файл сохранялся в кодировке utf-8.
  • Другие расширения