diff -ur feedtools-0.2.28/lib/feed_tools/feed.rb feedtools-0.2.28_patched/lib/feed_tools/feed.rb
--- feedtools-0.2.28/lib/feed_tools/feed.rb	2008-02-01 23:21:23.000000000 +0100
+++ feedtools-0.2.28_patched/lib/feed_tools/feed.rb	2008-02-26 17:18:27.000000000 +0100
@@ -669,8 +669,8 @@
         end
         if use_encoding != "utf-8" && use_encoding != nil && raw_data != nil
           begin
-            @feed_data_utf_8 =
-              Iconv.new('utf-8', use_encoding).iconv(raw_data)
+            @feed_data_utf_8 = raw_data
+#              Iconv.new('utf-8', use_encoding).iconv(raw_data)
           rescue Exception => error
             return raw_data
           end
diff -ur feedtools-0.2.28/lib/feed_tools/feed_item.rb feedtools-0.2.28_patched/lib/feed_tools/feed_item.rb
--- feedtools-0.2.28/lib/feed_tools/feed_item.rb	2008-02-01 00:02:37.000000000 +0100
+++ feedtools-0.2.28_patched/lib/feed_tools/feed_item.rb	2008-02-26 16:32:29.000000000 +0100
@@ -299,7 +299,7 @@
           "headline"
         ])
         @title = FeedTools::HtmlHelper.process_text_construct(title_node,
-          self.feed_type, self.feed_version, [self.base_uri])
+          self.feed_type, self.feed_version, [self.base_uri], self.encoding)
         if self.feed_type == "atom" ||
             self.configurations[:always_strip_wrapper_elements]
           @title = FeedTools::HtmlHelper.strip_wrapper_element(@title)
@@ -355,7 +355,7 @@
           "info"
         ])
         @content = FeedTools::HtmlHelper.process_text_construct(content_node,
-          self.feed_type, self.feed_version, [self.base_uri])
+          self.feed_type, self.feed_version, [self.base_uri], self.encoding)
         if self.feed_type == "atom" ||
             self.configurations[:always_strip_wrapper_elements]
           @content = FeedTools::HtmlHelper.strip_wrapper_element(@content)
@@ -409,7 +409,7 @@
           "body/datacontent"
         ])
         @summary = FeedTools::HtmlHelper.process_text_construct(summary_node,
-          self.feed_type, self.feed_version, [self.base_uri])
+          self.feed_type, self.feed_version, [self.base_uri],self.encoding)
         if self.feed_type == "atom" ||
             self.configurations[:always_strip_wrapper_elements]
           @summary = FeedTools::HtmlHelper.strip_wrapper_element(@summary)
@@ -899,7 +899,7 @@
           "rights"
         ])
         @rights = FeedTools::HtmlHelper.process_text_construct(rights_node,
-          self.feed_type, self.feed_version, [self.base_uri])
+          self.feed_type, self.feed_version, [self.base_uri],self.encoding)
         if self.feed_type == "atom" ||
             self.configurations[:always_strip_wrapper_elements]
           @rights = FeedTools::HtmlHelper.strip_wrapper_element(@rights)
diff -ur feedtools-0.2.28/lib/feed_tools/helpers/html_helper.rb feedtools-0.2.28_patched/lib/feed_tools/helpers/html_helper.rb
--- feedtools-0.2.28/lib/feed_tools/helpers/html_helper.rb	2008-02-01 23:18:49.000000000 +0100
+++ feedtools-0.2.28_patched/lib/feed_tools/helpers/html_helper.rb	2008-02-26 17:19:33.000000000 +0100
@@ -326,7 +326,7 @@
     end
     
     # Resolves all relative uris in a block of html.
-    def self.resolve_relative_uris(html, base_uri_sources=[])
+    def self.resolve_relative_uris(html, base_uri_sources=[], encoding=nil)
       relative_uri_attributes = [
         ["a", "href"],
         ["applet", "codebase"],
@@ -360,9 +360,9 @@
       
       if FeedTools.configurations[:sanitization_enabled]
         fragments = HTML5::HTMLParser.parse_fragment(
-          html, :tokenizer => HTML5::HTMLSanitizer)
+          html, :tokenizer => HTML5::HTMLSanitizer, :encoding=>encoding)
       else
-        fragments = HTML5::HTMLParser.parse_fragment(html)
+        fragments = HTML5::HTMLParser.parse_fragment(html, :encoding=>encoding)
       end
       resolve_node = lambda do |html_node|
         if html_node.kind_of? REXML::Element
@@ -473,7 +473,7 @@
     
     # Given a REXML node, returns its content, normalized as HTML.
     def self.process_text_construct(content_node, feed_type, feed_version,
-        base_uri_sources=[])
+        base_uri_sources=[], default_encoding=nil)
       if content_node.nil?
         return nil
       end
@@ -529,7 +529,7 @@
       end        
       unless content.nil?
         content = FeedTools::HtmlHelper.resolve_relative_uris(content,
-          [content_node.base_uri] | base_uri_sources)
+          [content_node.base_uri] | base_uri_sources, default_encoding)
         content = FeedTools::HtmlHelper.tidy_html(content)
       end
       if FeedTools.configurations[:tab_spaces] != nil
diff -ur feedtools-0.2.28/lib/feed_tools/vendor/html5/lib/html5/inputstream.rb feedtools-0.2.28_patched/lib/feed_tools/vendor/html5/lib/html5/inputstream.rb
--- feedtools-0.2.28/lib/feed_tools/vendor/html5/lib/html5/inputstream.rb	2008-02-01 01:59:57.000000000 +0100
+++ feedtools-0.2.28_patched/lib/feed_tools/vendor/html5/lib/html5/inputstream.rb	2008-02-26 17:20:56.000000000 +0100
@@ -63,7 +63,7 @@
         require 'iconv'
         begin
           @buffer << @raw_stream.read unless @raw_stream.eof?
-          @buffer = Iconv.iconv('utf-8', @char_encoding, @buffer).first
+#          @buffer = Iconv.iconv('utf-8', @char_encoding, @buffer).first
         rescue
           @win1252 = true
         end
