diff --git a/lib/mime.rb b/lib/mime.rb index c738aa3..058997b 100644 --- a/lib/mime.rb +++ b/lib/mime.rb @@ -105,8 +105,11 @@ def to_s opts={} opts = {:boundary_counter => 0}.merge opts if multipart? boundary = Mime.make_boundary opts[:boundary_counter] += 1, self - @body = [preamble, parts.map { |part| "\r\n" + part.to_s(opts) + "\r\n" }, "--\r\n" + epilogue]. - flatten.join("\r\n--" + boundary) + @body = [ + preamble, + parts.map { |part| "\r\n" + part.to_s(opts).force_encoding('UTF-8') + "\r\n" }, + "--\r\n" + epilogue + ].flatten.join("\r\n--" + boundary) content_type, attrs = Mime.split_header @headers['Content-Type'][0] attrs['boundary'] = boundary @headers['Content-Type'] = [([content_type] + attrs.map { |key, val| %{#{key}="#{val}"} }).join('; ')]