aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/CHANGELOG.md
diff options
context:
space:
mode:
authorBrett Carter <brett@janrain.com>2012-12-13 15:52:19 -0800
committerSteve Klabnik <steve@steveklabnik.com>2012-12-14 18:54:32 -0500
commit8f8397e0a4ea2bbc27d4bba60088286217314807 (patch)
tree0c5bc9559b1028a2c4a2df36ddb59171d2bd1257 /activesupport/CHANGELOG.md
parentf447240b0565fa48f0dbe9341a7bb0feff938dab (diff)
downloadrails-8f8397e0a4ea2bbc27d4bba60088286217314807.tar.gz
rails-8f8397e0a4ea2bbc27d4bba60088286217314807.tar.bz2
rails-8f8397e0a4ea2bbc27d4bba60088286217314807.zip
Remove unicode character encoding from ActiveSupport::JSON.encode
The encoding scheme (e.g. ☠ -> "\u2620") was broken for characters not in the Basic Multilingual Plane. It is possible to escape them for json using the weird encoding scheme of a twelve-character sequence representing the UTF-16 surrogate pair (e.g. '𠜎' -> "\u270e\u263a") but this wasn't properly handled in the escaping code. Since raw UTF-8 is allowed in json, it was decided to simply pass through the raw bytes rather than attempt to escape them.
Diffstat (limited to 'activesupport/CHANGELOG.md')
-rw-r--r--activesupport/CHANGELOG.md6
1 files changed, 6 insertions, 0 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md
index 82db1bb6f9..5e7121181d 100644
--- a/activesupport/CHANGELOG.md
+++ b/activesupport/CHANGELOG.md
@@ -1,4 +1,10 @@
## Rails 4.0.0 (unreleased) ##
+* Remove surrogate unicode character encoding from ActiveSupport::JSON.encode
+ The encoding scheme was broken for unicode characters outside the basic multilingual plane;
+ since json is assumed to be UTF-8, and we already force the encoding to UTF-8 simply pass through
+ the un-encoded characters.
+
+ *Brett Carter*
* Deprecate `Time.time_with_date_fallback`, `Time.utc_time` and `Time.local_time`.
These methods were added to handle the limited range of Ruby's native Time