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

ruby-changes:8186

From: naruse <ko1@a...>
Date: Wed, 8 Oct 2008 17:03:30 +0900 (JST)
Subject: [ruby-changes:8186] Ruby:r19714 (trunk): * ext/json/lib/json/pure/generator.rb (utf8_to_json):

naruse	2008-10-08 17:03:08 +0900 (Wed, 08 Oct 2008)

  New Revision: 19714

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=19714

  Log:
    * ext/json/lib/json/pure/generator.rb (utf8_to_json):
      process each unpacked Unicode character.

  Modified files:
    trunk/ChangeLog
    trunk/ext/json/lib/json/pure/generator.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 19713)
+++ ChangeLog	(revision 19714)
@@ -1,3 +1,8 @@
+Wed Oct  8 17:02:21 2008  NARUSE, Yui  <naruse@r...>
+
+	* ext/json/lib/json/pure/generator.rb (utf8_to_json):
+	  process each unpacked Unicode character.
+
 Wed Oct  8 15:00:22 2008  NARUSE, Yui  <naruse@r...>
 
 	* ext/json/lib/json/pure/parser.rb
Index: ext/json/lib/json/pure/generator.rb
===================================================================
--- ext/json/lib/json/pure/generator.rb	(revision 19713)
+++ ext/json/lib/json/pure/generator.rb	(revision 19714)
@@ -51,8 +51,9 @@
                     [\x80-\xc1\xf5-\xff]       # invalid
                   )/nx) { |c|
       c.size == 1 and raise GeneratorError, "invalid utf8 byte: '#{c}'"
-      c = c.unpack("U*")[0]
-      c > 0xFFFF ? ('\ud%03x\ud%03x' % [0x7C0+c/1024, 0xC00+c%1024]) : ('\u%04x'%c)
+      c.unpack("U*").map{|c|
+        c>0xFFFF ? ('\ud%03x\ud%03x'%[0x7C0+c/1024,0xC00+c%1024]) : ('\u%04x'%c)
+      }.join("")
     }
     string
   end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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