質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

8093閲覧

Ruby 日本語出力 文字コード?

King_of_Flies

総合スコア382

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2017/05/09 00:41

編集2017/05/09 00:50

お久しぶりです。
Takkoです。

現在Rubyの学習ということで入門編を下記サイトを活用して学習中です。

http://www.rubylife.jp/ini/japan/

そして今回質問したいのが、日本語の出力なのですが、
サイトで乗っている方法を使用して文字コード指定をしても文字が出力されないし、
.rbのファイルの文字コードをセットしても文字出力が出来ません。

//sakuraEditor.rb 文字コードはJISに設定済み print("あああ");
//Ruby実行 ruby -Ks sakuraEditor.rb//Enter (パス略 //実行結果 invalid multibyte char (UTF-8) invalid multibyte char (UTF-8) syntax error, unexpected end-of-input,expecting ')' print("■■■■■■■");//文字化け? ^//^これ何?

ちなみにrbファイルを編集し下記コードを実行するとエラーが出力されます。

//sakuraEditor.rb 文字コードはJISに設定済み print("KCODE=", $KCODE);
//Ruby実行 ruby -Ks sakuraEditor.rb //Enter (パス略 //実行結果 warning: variable $KCODE is no longer effective //$KCODEは有効ではないと言ってるようですね。 KCODE =

とりあえず、日本語出力するために何をすればいいのか・・・。

ご教授ください。

追記
実行時のコマンドを ruby -Ku sakuraEditor.rbにしたら日本語出力が出来ました。

ですが、UTF-8以外で$KCODEが効かないのが良く分からないです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

今から始めたということで、Ruby 2.0以降だということを前提に進めます。

  1. 文字コードはUTF-8がデフォルトとなっています。よほどのことがない限り、ソースコードはUTF-8で作成しましょう。
  2. あとは単に出力するだけで、UTF-8として日本語が処理されます。
  3. Windowsではふつうのコマンドプロンプトを使うとSJIS前提となっているので、工夫が必要です

投稿2017/05/09 00:51

maisumakun

総合スコア145123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2017/05/09 00:59

いえ、逆に「UTF-8でもSJISでもどうにかしようとする」のです。
otn

2017/05/09 08:53

「工夫が必要です。」のサイトは、-Ku とか書いてあるので、1.8以前に書かれたものですね。 (1.9以降でも機能しますが)
guest

0

JISではなくて、UTF-8に変えて保存してみてください。
もし、保存ダイアログにUTF8nなどがあったらそちらで保存します。
(UTF8nと明示しているようなエディタだと、ただのUTF8で保存するとBOMが付く事がありますので。)

投稿2017/05/09 00:51

yoorwm

総合スコア1305

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

King_of_Flies

2017/05/09 00:56

rbファイルの設定をUTF-8にしたら、日本語出力だけ解決しました。 ただ ruby -K[kcode] 実行ファイル名 で print("KCODE=", $KCODE);を実行すると 相変らず、最初の質問時に記載した内容が出力されます。
maisumakun

2017/05/09 01:01

$KCODEや-Kは、Ruby 1.8時代の記法です。Ruby 1.9で文字コード周りが大きく変わってしまったので、もう忘れて下さい。
King_of_Flies

2017/05/09 01:03

古い記事を参考にしていたということですね。。 ありがとうございました。
King_of_Flies

2017/05/09 01:05

回答ありがとうございました。 BAは悩んだので、回答が早かったmaisumakunさんに差し上げたいと思います。 ほんとにすいません・・。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問