<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>spec/fixtures/umlauts.json</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -13,12 +13,19 @@ module HTTParty
       end
 
       def self.decode(json)
-        YAML.load(convert_json_to_yaml(json))
+        YAML.load(unescape(convert_json_to_yaml(json)))
       rescue ArgumentError =&gt; e
         raise ParseError, &quot;Invalid JSON string&quot;
       end
 
       protected
+
+        def self.unescape(str)
+          str.gsub(/\\u([0-9a-f]{4})/) {
+            [$1.hex].pack(&quot;U&quot;)
+          }
+        end
+
         # matches YAML-formatted dates
         DATE_REGEX = /^\d{4}-\d{2}-\d{2}|\d{4}-\d{1,2}-\d{1,2}[ \t]+\d{1,2}:\d{2}:\d{2}(\.[0-9]*)?(([ \t]*)Z|[-+]\d{2}?(:\d{2})?)?$/
 
@@ -64,4 +71,4 @@ module HTTParty
         end
     end
   end
-end
\ No newline at end of file
+end</diff>
      <filename>lib/httparty/parsers/json.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,35 +14,35 @@ describe HTTParty do
     it &quot;should have reader&quot; do
       @klass.base_uri.should == 'http://api.foo.com/v1'
     end
-    
+
     it 'should have writer' do
       @klass.base_uri('http://api.foobar.com')
       @klass.base_uri.should == 'http://api.foobar.com'
     end
   end
-  
+
   describe &quot;#normalize_base_uri&quot; do
     it &quot;should add http if not present for non ssl requests&quot; do
       uri = HTTParty.normalize_base_uri('api.foobar.com')
       uri.should == 'http://api.foobar.com'
     end
-    
+
     it &quot;should add https if not present for ssl requests&quot; do
       uri = HTTParty.normalize_base_uri('api.foo.com/v1:443')
       uri.should == 'https://api.foo.com/v1:443'
     end
-    
+
     it &quot;should not remove https for ssl requests&quot; do
       uri = HTTParty.normalize_base_uri('https://api.foo.com/v1:443')
       uri.should == 'https://api.foo.com/v1:443'
     end
   end
-  
+
   describe &quot;headers&quot; do
     it &quot;should default to empty hash&quot; do
       @klass.headers.should == {}
     end
-    
+
     it &quot;should be able to be updated&quot; do
       init_headers = {:foo =&gt; 'bar', :baz =&gt; 'spax'}
       @klass.headers init_headers
@@ -113,37 +113,37 @@ describe HTTParty do
       end
     end
   end
-  
+
   describe &quot;default params&quot; do
     it &quot;should default to empty hash&quot; do
       @klass.default_params.should == {}
     end
-    
+
     it &quot;should be able to be updated&quot; do
       new_defaults = {:foo =&gt; 'bar', :baz =&gt; 'spax'}
       @klass.default_params new_defaults
       @klass.default_params.should == new_defaults
     end
   end
-  
+
   describe &quot;basic http authentication&quot; do
     it &quot;should work&quot; do
       @klass.basic_auth 'foobar', 'secret'
       @klass.default_options[:basic_auth].should == {:username =&gt; 'foobar', :password =&gt; 'secret'}
     end
   end
-  
+
   describe &quot;format&quot; do
     it &quot;should allow xml&quot; do
       @klass.format :xml
       @klass.default_options[:format].should == :xml
     end
-    
+
     it &quot;should allow json&quot; do
       @klass.format :json
       @klass.default_options[:format].should == :json
     end
-    
+
     it 'should not allow funky format' do
       lambda do
         @klass.format :foobar
@@ -177,7 +177,7 @@ describe HTTParty do
       end.should raise_error(HTTParty::RedirectionTooDeep)
     end
   end
-  
+
   describe &quot;with multiple class definitions&quot; do
     before(:each) do
       @klass.instance_eval do
@@ -198,53 +198,59 @@ describe HTTParty do
       @additional_klass.default_options.should == { :base_uri =&gt; 'http://second.com', :default_params =&gt; { :two =&gt; 2 } }
     end
   end
-  
+
   describe &quot;#get&quot; do
     it &quot;should be able to get html&quot; do
       stub_http_response_with('google.html')
       HTTParty.get('http://www.google.com').should == file_fixture('google.html')
     end
-    
+
     it &quot;should be able parse response type json automatically&quot; do
       stub_http_response_with('twitter.json')
       tweets = HTTParty.get('http://twitter.com/statuses/public_timeline.json')
       tweets.size.should == 20
       tweets.first['user'].should == {
-        &quot;name&quot;              =&gt; &quot;Pyk&quot;, 
-        &quot;url&quot;               =&gt; nil, 
-        &quot;id&quot;                =&gt; &quot;7694602&quot;, 
-        &quot;description&quot;       =&gt; nil, 
-        &quot;protected&quot;         =&gt; false, 
-        &quot;screen_name&quot;       =&gt; &quot;Pyk&quot;, 
-        &quot;followers_count&quot;   =&gt; 1, 
-        &quot;location&quot;          =&gt; &quot;Opera Plaza, California&quot;, 
+        &quot;name&quot;              =&gt; &quot;Pyk&quot;,
+        &quot;url&quot;               =&gt; nil,
+        &quot;id&quot;                =&gt; &quot;7694602&quot;,
+        &quot;description&quot;       =&gt; nil,
+        &quot;protected&quot;         =&gt; false,
+        &quot;screen_name&quot;       =&gt; &quot;Pyk&quot;,
+        &quot;followers_count&quot;   =&gt; 1,
+        &quot;location&quot;          =&gt; &quot;Opera Plaza, California&quot;,
         &quot;profile_image_url&quot; =&gt; &quot;http://static.twitter.com/images/default_profile_normal.png&quot;
       }
     end
-    
+
     it &quot;should be able parse response type xml automatically&quot; do
       stub_http_response_with('twitter.xml')
       tweets = HTTParty.get('http://twitter.com/statuses/public_timeline.xml')
       tweets['statuses'].size.should == 20
       tweets['statuses'].first['user'].should == {
-        &quot;name&quot;              =&gt; &quot;Magic 8 Bot&quot;, 
-        &quot;url&quot;               =&gt; nil, 
-        &quot;id&quot;                =&gt; &quot;17656026&quot;, 
-        &quot;description&quot;       =&gt; &quot;ask me a question&quot;, 
-        &quot;protected&quot;         =&gt; &quot;false&quot;, 
-        &quot;screen_name&quot;       =&gt; &quot;magic8bot&quot;, 
-        &quot;followers_count&quot;   =&gt; &quot;90&quot;, 
-        &quot;profile_image_url&quot; =&gt; &quot;http://s3.amazonaws.com/twitter_production/profile_images/65565851/8ball_large_normal.jpg&quot;, 
+        &quot;name&quot;              =&gt; &quot;Magic 8 Bot&quot;,
+        &quot;url&quot;               =&gt; nil,
+        &quot;id&quot;                =&gt; &quot;17656026&quot;,
+        &quot;description&quot;       =&gt; &quot;ask me a question&quot;,
+        &quot;protected&quot;         =&gt; &quot;false&quot;,
+        &quot;screen_name&quot;       =&gt; &quot;magic8bot&quot;,
+        &quot;followers_count&quot;   =&gt; &quot;90&quot;,
+        &quot;profile_image_url&quot; =&gt; &quot;http://s3.amazonaws.com/twitter_production/profile_images/65565851/8ball_large_normal.jpg&quot;,
         &quot;location&quot;          =&gt; nil
       }
     end
-    
+
     it &quot;should not get undefined method add_node for nil class for the following xml&quot; do
       stub_http_response_with('undefined_method_add_node_for_nil.xml')
       result = HTTParty.get('http://foobar.com')
       result.should == {&quot;Entities&quot;=&gt;{&quot;href&quot;=&gt;&quot;https://s3-sandbox.parature.com/api/v1/5578/5633/Account&quot;, &quot;results&quot;=&gt;&quot;0&quot;, &quot;total&quot;=&gt;&quot;0&quot;, &quot;page_size&quot;=&gt;&quot;25&quot;, &quot;page&quot;=&gt;&quot;1&quot;}}
     end
-    
+
+    it &quot;should correctly parse umlauts in json&quot; do
+      stub_http_response_with('umlauts.json')
+      result = HTTParty.get('http://foobar.com')
+      result.should == {&quot;data&quot;=&gt;&quot;G&#252;nter&quot;}
+    end
+
     it &quot;should parse empty response fine&quot; do
       stub_http_response_with('empty.xml')
       result = HTTParty.get('http://foobar.com')</diff>
      <filename>spec/httparty_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>577798b69f9f59db685509d3e57d4a5aac0cd47f</id>
    </parent>
  </parents>
  <author>
    <name>Michael Siebert</name>
    <email>siebertm85@googlemail.com</email>
  </author>
  <url>http://github.com/siebertm/httparty/commit/ca6e5a887f279a403f2acd68aa199ecd29b111ec</url>
  <id>ca6e5a887f279a403f2acd68aa199ecd29b111ec</id>
  <committed-date>2009-02-03T07:47:23-08:00</committed-date>
  <authored-date>2009-02-03T07:47:23-08:00</authored-date>
  <message>Fix Bug unescaping umlauts</message>
  <tree>8dbb800cdb374e818881ca88ab648f907cd50767</tree>
  <committer>
    <name>Michael Siebert</name>
    <email>siebertm85@googlemail.com</email>
  </committer>
</commit>
