If i execute your code i get an error on the special character. Can you try this code ?
# encoding: UTF-8
File.open("test.txt", "w:UTF-8") do |f|
f.write "test \u00A9 foo"
end
#Encoding.filesystem = "UTF-8"
p Encoding.find("filesystem")
File.open("test.txt", "r:UTF-8") do |f|
puts f.read
end
On my windows box i then get
#<Encoding:Windows-1252>
test © foo
I have no idea why the  is there..