From: "前川 映一" Date: 2009-08-21T15:42:53+09:00 Subject: [ruby-list:46324] Re: [ruby-list:46322 , 46323 ] Re: ファイル名について 前川です。 成瀬さん、池澤さん ありがとうございます。 舌足らずの説明で申し訳ありません。 ファイルが、実在しているかどうかの確認を、していたのですが、 ファイル名に日本語を使用しており、結果が、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となる原因は、文字化けと判断した次第です。 池澤さんサンプルの C:\>ruby -Ks -e "p Dir.glob('*.html')" を、 File.exists?( fname ) にどのように適用すればよいでしょうか。 よろしくお願いします。 −−−−−−−−−−−−−−−−−−−−− 成瀬さん、ありがとうございます。 >成瀬です。 >今回はちゃんと新規になっていますね。 よかったです。多少、不安がありました。 >2009/08/21 12:00, 前川 映一 wrote: >> 初歩的な質問で、恥ずかしいのですが、 >> ファイル名に日本語(漢字・カタカナ・ひらがな)を >> 使用した場合、文字化けが生じます。 >> どうすれば、いいでしょうか。 >> >> 例 >> sjisコード表textConversion用.html >> が、 >> sjis\203R\201[\203h\225\textConversion\227p.html >> >> となります。 >もうちょっと具体的なコードを書かないとわかりづらいんですが、 >推測するに、 >filename = "sjisコード表textConversion用.html" >p filename >って感じでしょうか。 >で、これはp側の話です。 >Ruby 1.8 の Kernel#p は日本語をエスケープして表示するのです。 >対策としては、pでなくputsを使うのが手っ取り早いでしょう。 −−−−−−−−−−−−−−−−−−−−−−− 池澤さん、ありがとうございます。 >Rubyリファレンスマニュアル FAQの「日本語の取り扱い」にいろいろあります。 >http://www.ruby-lang.org/ja/man/html/Ruby_FAQ.html >以下参考になるかどうか。 >C:\>dir *.html >2008/02/23 22:49 44 index.html >2009/08/21 12:26 42 日本語.html >C:\>ruby -v >ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32] >C:\>ruby -e "p Dir.glob('*.html')" >["index.html", "\223\372\226{\214\352.html"] >C:\>ruby -Ks -e "p Dir.glob('*.html')" >["index.html", "日本語.html"] >On Fri, 21 Aug 2009 12:00:30 +0900 >"前川 映一" さんwrites: >> >> 前川です。 >> >> 初歩的な質問で、恥ずかしいのですが、 >> ファイル名に日本語(漢字・カタカナ・ひらがな)を >> 使用した場合、文字化けが生じます。 >> どうすれば、いいでしょうか。 >> >> 例 >> sjisコード表textConversion用.html >> が、 >> sjis\203R\201[\203h\225\textConversion\227p.html >> >> となります。 >> >> 過去ログ[45824]を見つけましたが、 >> 日本語はファイル名に使わないようにするしかないのでしょうか? >> >> 使用しているRubyは、 >> ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32]です。 >> >> よろしく、お願いします。 >> >> 了 >>