aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rdoc/rdoc.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rdoc/rdoc.rb')
-rw-r--r--lib/rdoc/rdoc.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/rdoc/rdoc.rb b/lib/rdoc/rdoc.rb
index 9c39354c6c..3c08b5e4c1 100644
--- a/lib/rdoc/rdoc.rb
+++ b/lib/rdoc/rdoc.rb
@@ -406,11 +406,13 @@ The internal error was:
def read_file_contents(filename)
content = open filename, "rb" do |f| f.read end
+ utf8 = content.sub!(/\A\xef\xbb\xbf/, '')
if defined? Encoding then
if /coding[=:]\s*([^\s;]+)/i =~ content[%r"\A(?:#!.*\n)?.*\n"]
- if enc = ::Encoding.find($1)
- content.force_encoding(enc)
- end
+ enc = ::Encoding.find($1)
+ end
+ if enc ||= (Encoding::UTF_8 if utf8)
+ content.force_encoding(enc)
end
end