2011-07-31 12 views

答えて

0

あなたのスクリプトは私の箱の上でうまく動作します。

端末アプリケーションまたはRubyからエラーが発生していますか?

私の端末のアプリケーションはutf-8を使用するように設定されています。

ファイルを開くときに明示的にエンコードを指定することで、この問題を回避できます。 http://www.ruby-doc.org/core/classes/File.html#M000069を参照し、IO :: newへのリンクに従ってください。

3

あなたのrubyファイルの先頭のコメントは、ソースコードを特定しただけです。つまり、rubyファイルにエンコードされているエンコードがrubyに伝えられます。そのためには、特に別のものを要求しない限り、システムのデフォルトのエンコーディングを使用します。

あなたのシステムのデフォルトのエンコーディングはCP852なので、utf-8を使ってファイルを開くには、ファイルを開くときにそのエンコーディングを指定する必要があります(File.openに引数として:encoding => "utf-8"を渡す)。

0

これは多くのことを説明しなければならない

# https://pl.wikipedia.org/wiki/Kodowanie_polskich_znak%C3%B3w 
inp = "zale\xBFno\x9cci".force_encoding('Windows-1250') 

# inp = File.open('content-win-1250.txt', :encoding => 'Windows-1250').read 

inp = inp.encode('utf-8') 

File.open("tmp.txt", "wb") do |out| 
    out.write(inp) 
end 

# file 'tmp.txt contains "zależności" 
関連する問題