From 60db8684700889b8dd986b1a3f563727b3374ebd Mon Sep 17 00:00:00 2001 From: Moritz Breit Date: Wed, 16 Nov 2011 16:21:04 +0100 Subject: [PATCH] [#707] Fix encoding error on wiki diffs on Ruby 1.9 WikiDiff#to_html returns a string with ASCII encoding if the WikiJournal content has been Zlib compressed because Zlib::Inflate.inflate returns strings with ASCII encoding. Forcing the encoding to be UTF8 fixes this bug. --- app/models/wiki_content.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/models/wiki_content.rb b/app/models/wiki_content.rb index 88bf4504..b04ad378 100644 --- a/app/models/wiki_content.rb +++ b/app/models/wiki_content.rb @@ -104,7 +104,12 @@ class WikiContent < ActiveRecord::Base def text @text ||= case changes["compression"] when "gzip" - Zlib::Inflate.inflate(changes["data"]) + data = Zlib::Inflate.inflate(changes["data"]) + if data.respond_to? :force_encoding + data.force_encoding("UTF-8") + else + data + end else # uncompressed data changes["data"]