Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 |

2006-09-22(Fri)

pとputs

Ruby勉強

プログラムを書いている最中に確認の為に良く p を使用しますが、残念ながら日本語が表示できない。そんな時は素直にputsを使用します。

文字コード変換が絡むテストをしている時に、このことを忘れてしまい悩んだことが何度もあります(^^ゞ

a = 'あいうえお'
p a       # => "\202\240\202\242\202\244\202\246\202\250"
puts a    # => あいうえお

追記

$KCODEを指定しておくとちゃんと表示するということです。

$KCODE = 's'
a = 'あいうえお'
p a  #=> "あいうえお"

ブースカブースカ 2006/09/22 07:26 こんにちは、ブースカです。
p メソッドによる日本語の出力ですが、マルチバイト文字列エンコーディングを指定する組み込み変数 $KCODE を適切に設定することできちんと日本語で表示されます。デフォルトでは $KCODE が ”NONE” に設定されているので、ダンプ表示されます。たとえば、スクリプトソースの文字コードおよび出力するコンソールの文字コードが EUC-JP の場合、下記のように $KCODE = ”EUC” と設定すれば、”p” メソッドでもきちんと日本語で出力されます。お試しください。

$KCODE = ”EUC”
a = ’あいうえお’

p a # => ”あいうえお”
puts a # => あいうえお

[参考]
『Rubyリファレンスマニュアル / 組み込み変数』( http://www.ruby-lang.org/ja/man/?cmd=view;name=%C1%C8%A4%DF%B9%FE%A4%DF%CA%D1%BF%F4 )

ブースカブースカ 2006/09/22 08:04 追記です。あと、Ruby のコマンドラインオプションで $KCODE を指定する方法もありますね。$KODE を EUC-JP で指定したい場合は下記のとおりです。

bash-2.05$ ruby -Ke デバッグするRubyスクリプトファイル名

hakehake 2006/09/22 21:39 ブースカさん、毎度ありがとうございます。
なるほど明示的にスクリプト上の文字コードを指定すればよいのですね、前に本で読んだのですが、コロッと忘れておりました。使いこなすと、こういうのが直ぐに出てくるようになるのかな?

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hake/20060922/p1