ruby-changes:8176
From: naruse <ko1@a...>
Date: Tue, 7 Oct 2008 16:50:57 +0900 (JST)
Subject: [ruby-changes:8176] Ruby:r19704 (trunk): * ext/json/lib/json/pure/generator.rb (utf8_to_json):
naruse 2008-10-07 16:50:43 +0900 (Tue, 07 Oct 2008) New Revision: 19704 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=19704 Log: * ext/json/lib/json/pure/generator.rb (utf8_to_json): force_encoding before gsub. Modified files: trunk/ChangeLog trunk/ext/json/lib/json/pure/generator.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 19703) +++ ChangeLog (revision 19704) @@ -1,3 +1,8 @@ +Tue Oct 7 16:43:51 2008 NARUSE, Yui <naruse@r...> + + * ext/json/lib/json/pure/generator.rb (utf8_to_json): + force_encoding before gsub. + Tue Oct 7 16:35:41 2008 NARUSE, Yui <naruse@r...> * ext/json/lib/json/pure/generator.rb (utf8_to_json): Index: ext/json/lib/json/pure/generator.rb =================================================================== --- ext/json/lib/json/pure/generator.rb (revision 19703) +++ ext/json/lib/json/pure/generator.rb (revision 19704) @@ -40,8 +40,8 @@ # Convert a UTF8 encoded Ruby string _string_ to a JSON string, encoded with # UTF16 big endian characters as \u????, and return it. def utf8_to_json(string) # :nodoc: - string = string.gsub(/["\\\/\x0-\x1f]/) { MAP[$&] } - string.force_encoding(Encoding::ASCII_8BIT) + string = string.dup.force_encoding(Encoding::ASCII_8BIT) + string.gsub!(/["\\\/\x0-\x1f]/) { MAP[$&] } string.gsub!(/( (?: [\xc2-\xdf][\x80-\xbf] | -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/