重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

あるif文をdefでまとめて動かしたところ、西欧のエンコードで表示されてしまうのですが、
これはエラーですよね?正しい動作にならないのですが、どうしたらよいでしょうか。

def search_kansi(h)
if h == 1
kansi = "甲子"
elsif h == 2
kansi = "乙丑"
elsif h == 3
kansi = "丙寅"
else
kansi ="無効な値が入力されました"
end
return kansi
end #def

nikkan = search_kansi(h)
print nikkan

A 回答 (3件)

>ブラウザ表示時に西欧のコードで文字化けしてしまうんですよ。



文字コードを指定していないせいでしょうね。
ちゃんと指定しましょう。

もしこれがcgiで、これだけで全体のプログラムなのだとすると、先頭で、

print "Content-Type: text/plain; charset=Shift_JIS\n\n"

そうじゃないのだったらどこかでこれに類することをしてください。

この回答への補足

補足を見てください。

補足日時:2011/03/05 16:25
    • good
    • 0

ちゃんと動きますけど。



>西欧のエンコードで表示されてしまうのですが、

は、具体的にどういう現象ですか?
普通のコマンドプロンプトで動かしているのですよね?

この回答への補足

エディタでソースコードを記述してFTPにアップしてます。
ブラウザ表示時に西欧のコードで文字化けしてしまうんですよ。

補足日時:2011/03/05 14:49
    • good
    • 0

補足要求:


漢字コードの指定もしくはエンコーディングの指定をきちんと行えば問題ないかと思います。
その為には、
使用されているrubyのバージョン
使用されているOS(windows-xp,windows7,linux等)の情報も必要になります。
windowsであれば、プログラムを記述している文字コードはシフトJIS
linuxであれば、プログラムを記述している文字コードはEUC
になりますが、もし、意図的にほかの文字コードでプログラムを
記述している場合は、その旨も補足して下さい。

この回答への補足

#!/usr/local/bin/ruby -Ks
# -*- coding:shift_jis -*-

$KCODE = 'SJIS'

を宣言済みです。

バージョンは1.8.7
OSはwindowsXPです。

意図的にシフトJISを使用しています。
ケータイ用も考えていますので。

よろしくお願いいたします。

補足日時:2011/03/04 19:55
    • good
    • 0

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