English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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。