killistさんノート

killistさんの記録帖

RSS 2.0

Eclipseにてrubyアプリを実行した時にコンソールのUTF-8文字列が文字化けする現象

以下の様なコードで実行する。

jpn_utf8.rb

# coding: utf-8
p "日本語サンプル"

この時、jpn_utf8.rbのエンコードはUTF-8であること。
(パッケージエクスプローラのjpn_utf8.rbを右クリック[プロパティ]>[リソース]>[テキスト・ファイルのエンコード]がUTF-8となっていること。)

実行すると以下の様に表示される。

“\u65E5\u672C\u8A9E\u30B5\u30F3\u30D7\u30EB”

[実行]>[実行構成]の左ペインから[jpn_utf8.rb]を選択。
[共通]タブ>[エンコード]を確認するも、[デフォルト – 継承 (UTF-8)]が選択されている。

ググると以下の記載が多い。

(要約)「eclipse.iniに “-Dfile.encoding=utf-8” の記載を追加せよ」

該当ファイルに追記し、Eclipseの再起動を行うも、現象再現。
どうもこの対応は、他の文字化け現象への対応のようだ。

ググり続けると以下のサイトを発見。

戯れ、戯れて、戯れ言を

以下のように対処。
#! ruby -Ku
print(“こん”)
これで日本語がUTF-8で打てる

従ってコード頭に追記すると、コンソールに化けずに表示された。

うえはらゆうきさんに感謝。


付録。
変更後のjpn_utf8.rbは以下の様になる。

#! ruby -Ku
# coding: utf-8
p "日本語サンプル"


追記(2012/11/19)。
当現象はpにて出力したときに再現し、putsにて出力した場合にいは再現しない事が確認できた。
なお、本対応自体はpによる出力に対し有効。

Categories: 未分類 Tags: , ,

killist


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

Category