ソラです。
Rubyのバージョンが1.9以上なら、行頭に #-*- coding: utf-8 -*- などとしてエンコードを指定してみる、
1.9未満(1.8とか)なら$KCODE='u' (utf-8の場合)などとしてもダメですか?
2009/8/21 前川 映一 <eiichi_maekawa / mhi.co.jp>:
>
> 前川です。
>
> 成瀬さん、池澤さん ありがとうございます。
>
> 舌足らずの説明で申し訳ありません。
>
> ファイルが、実在しているかどうかの確認を、していたのですが、
> ファイル名に日本語を使用しており、結果が、falseとなってしまいます。
> ファイルは、実在しているのですが・・・
>
> 具体的には、
> def line_count( fname )
>  a = File.exists?( fname )
>  puts "ファイルは" + a.to_s
>  if (!File.exists?( fname ))
>    return 0
>  end
>  lines = 0
>  open( fname ) {|file|
>    while l = file.gets
>      lines += 1
>    end
>  }
>  return lines
> end
>
> line_number = line_count(
> "C:/Apache2.2/htdocs/qmsPotalShip/confirmation/sjisコード表textConversion
> 用.html" )
> puts "行数は、【"+ line_number.to_s + "】"
>
> です。
> 上記で、  a = File.exists?( fname )
>
> で、falseが帰ってきた次第です。
> デバッガで、確認したところ、
> fileTest.rb:8:  if (!File.exists?( fname ))
> (rdb:1) a
> false
> (rdb:1) fname
> "C:/Apache2.2/htdocs/qmsPotalShip/confirmation/\"sjis\203R\201[\203h\225\textConversion\227p\".html"
>
> となっていました。よって、falseとなる原因は、文字化けと判断した次第です。




-- 
ソラ sora134 / gmail.com
Blog: http://codnote.net/
Twitter: http://twitter.com/sora_h
Skype: sora_harakami