私はまだRubyを学んでいるので、ここで何か間違っていると確信していますが、WindowsでRuby 1.9.3を使用すると、特定のサイズになるランダムなASCIIガベージを含むファイルを書き込む際に問題が発生します。QA を行っているアプリケーションのテスト用に、これらのファイルを作成できる必要があります。Mac と *nix では、ファイル サイズは毎回正しく書き込まれます。ただし、Windows では、通常 1,024 バイトから 1,031 バイトの間のランダムなサイズのファイルが生成されます。
問題は、rstr が生成している文字の 1 つが 2 文字としてカウントされていることだと確信していますが、これは起こるべきではないようです。
これが私のコードです:
num = 10
k = 1
for i in 1..num
fname = "f#{i}.txt"
f = File.new(fname, "w")
for k in 1..size
rstr = "#{(1..1024).map{rand(255).chr}.join}"
f.write rstr
print " #{rstr.size} " # this returns 1024 every time.
rstr = ""
end
f.close
end
また試しました:
opts = {}
opts[:encoding] = "UTF-8"
fname = "f#{i}.txt"
f = File.new(fname, "w", opts)