アプリ版:「スタンプのみでお礼する」機能のリリースについて

基本的な質問になるのですが、
CentOS5.5でRuby1.9.2を利用しているのですが、スクリプト中に、マジックコメントを
入れているにも関わらず、「invalid multibyte char」エラーが返ってきます。
追加で設定する情報があるのでしょうか。
お手数お掛けしますが、ご存知の方がいらっしゃれば、ご教示ください。

# ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]

# cat hello.rb
# -*- encoding: utf-8 -*-
puts 'こんにちは'

# ruby -v hello.rb
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]
hello.rb:2: invalid multibyte char (UTF-8)
hello.rb:2: invalid multibyte char (UTF-8)

# ruby -Ks hello.rb
hello.rb:2: invalid multibyte char (UTF-8)
hello.rb:2: invalid multibyte char (UTF-8)

A 回答 (2件)

逆でしょう。


マジックコメントが効いてるから、invalid multibyte char (UTF-8)となるのでしょう。

マジックコメントにしても,htmlのcharset=にしても、「そのコードを使っています」と宣言するものであって、「そのコードに変換される」ものではないです。

保存するときにその出力コードを使うように、エディタを設定するとか、nkf等で後で変換するとかして、宣言したものと実際のコードを合せてください。

# 一部には、現在のコードと比較して、宣言されているコードで保存したり、コメント自体をファイルに合せて書き換えたり、警告表示したりするエディタもあります
# emacs + ruby-mode.el とか


> # cat hello.rb
> # -*- encoding: utf-8 -*-
> puts 'こんにちは'

となってますが、その表示に使った端末がEUC-JPになってないですか?

nkf --guess hello.rb
等で文字コードを確認してください
    • good
    • 1

ソースの漢字コードは何でしょうか?



puts 'こんにちは'の「こんにちわ」がutf-8で記述されていれば
期待した結果になるかと思いますが、
もし、EUCなどで記述されていれば、期待した結果になりません。
ソースコードを(間違いなく)utf-8で、記述してみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!