[ruby-list:46324] Re: [ruby-list:46322 , 46323 ] Re: ファイル名について
From:
"前川 映一" <eiichi_maekawa@...>
Date:
2009-08-21 06:42:53 UTC
List:
ruby-list #46324
前川です。
成瀬さん、池澤さん ありがとうございます。
舌足らずの説明で申し訳ありません。
ファイルが、実在しているかどうかの確認を、していたのですが、
ファイル名に日本語を使用しており、結果が、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
>"前川 映一" <eiichi_maekawa@mhi.co.jp> さん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]です。
>>
>> よろしく、お願いします。
>>
>> 了
>>