invalid multibyte char (US-ASCII)

estis2010/09/05 (日) 14:09 に投稿

invalid multibyte char (US-ASCII)
というエラーが出てしまいました。

Rubyのバージョンが、1.9.1なので、

# -*- encoding: utf-8 -*-

のように、ソースの先頭行(先頭行がシェバングの場合は2行目)で、文字エンコーディングを指定する必要があり、
指定しないと、7ビットASCII(US-ASCII)だと想定されるのだそうです。

# coding: utf-8

# encoding: utf-8
など、先頭行(先頭行がシェバングの場合は2行目)にあるコメント行の中に「coding:」という文字列を探し、その後の文字列がエンコーディング名だと判断します。
エンコーディング名は大文字小文字を区別しない。だから、
# This file is coding: uTf-8
としてもかまわないのです。(こんなことしないでしょうけど)
coding:の後の空白も必須ではないのです。
#coding:utf-8
でも、動くことは動きます。
見にくいので、空白を入れて # coding: utf-8 の方が好きです。

UTF-8のバイトオーダーマークを、Rubyは理解してくれるそうです。