diff --git a/lib/write_xlsx/compatibility.rb b/lib/write_xlsx/compatibility.rb
index <HASH>..<HASH> 100644
--- a/lib/write_xlsx/compatibility.rb
+++ b/lib/write_xlsx/compatibility.rb
@@ -45,7 +45,7 @@ end
 
 unless File.respond_to?(:binread)
   def File.binread(file) #:nodoc:
-    File.open(file,"rb") { |f| f.read }
+    File.open(file,"rb:utf-8:utf-8") { |f| f.read }
   end
 end
 
diff --git a/lib/write_xlsx/package/xml_writer_simple.rb b/lib/write_xlsx/package/xml_writer_simple.rb
index <HASH>..<HASH> 100644
--- a/lib/write_xlsx/package/xml_writer_simple.rb
+++ b/lib/write_xlsx/package/xml_writer_simple.rb
@@ -92,7 +92,7 @@ module Writexlsx
 
       def close
         if @filename
-          File.open(@filename, "wb") { |f| f << string }
+          File.open(@filename, "wb:utf-8:utf-8") { |f| f << string }
         end
         @io.close
       end
bug fix: set io encoding to avoid wrong encoding under MS windows.