Ruby中国語エンコーディング
前の章では、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点に注意する必要があります:
- 1. 最初の行に追加する必要があります# -*- coding: UTF-8 -*-、インタプリタにutf-8を使用してソースコードを解析するように指示します。
- 2. エディタでファイルを保存する際のエンコーディングをutf-8に設定する必要があります。 その他の拡張