English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
前の章では、Rubyで"Hello, World!"を出力する方法を学びましたが、英語は問題ありません。しかし、中文字符"你好,世界"を出力すると、中文エンコードの問題に直面する可能性があります。
Rubyのファイルにエンコーディングが指定されていない場合、実行中にエラーメッセージが表示されます:
#!/usr/bin/ruby -w puts "こんにちは、世界!";
上記のプログラムの実行結果は:
invalid multibyte char (US-ASCII)
上記のエラーメッセージは、RubyがASCIIエンコーディングを使用してソースコードを読み込むことを示しています。中国語には乱雑になりますが、解決策はファイルの先頭に追加することです # -*- coding: UTF-8 -*-(EMAC書き方) または #coding=utf-8 だけで済みます。
#!/usr/bin/ruby -w # -*- coding: UTF-8 -*- puts "こんにちは、世界!";
出力結果は:
こんにちは、世界!
学習中に、ソースコードファイルに中国語のエンコーディングが含まれている場合、次の2点に注意してください: