[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]