• ベストアンサー

Rubyで申(さる)を出力したいが、エラー

Rubyで申(さる)を出力したいのですが、 print文でInternal Server Errorが出てしまいます。 なぜでしょうか。他の十二支はちゃんと出力されます。 なぜ申だけでないのでしょうか。 エンコードの問題なのでしょうか? 私はShiftJISなんですが、何が問題なのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

「申」を SHIFT JIS で表現したバイト列は "\x90\x5c"になりますが、 この"\x5c"は、1バイト文字「\」の文字コードに一致します。 そのため、SHIFT JIS と解釈せずにコードを見ると、不可解な「\」が現れてエラーになります。 そのため、文字列中に「申」などの文字を使いたい場合は、rubyに、文字のエンコードはSHIFT JIS であると認識させる必要があります。 ruby 1.8系の場合は、起動オプション(1行目の「#! /usr/local/bin/ruby」といった行)に -Ks を追加してください。 http://www.ruby-lang.org/ja/man/html/FAQ_C6FCCBDCB8ECA4CEBCE8A4EAB0B7A4A4.html ruby 1.9系の場合は、#!の次の行にmagic comment 「# -*- coding: Windows-31J -*-」を追加します。 http://dgames.jp/dan/permalink/20090828_00

cutisei
質問者

お礼

-Ksで動きました。本当にありがとうございます。 初歩的ですみません。

関連するQ&A