diff options
author | Brett Carter <brett@janrain.com> | 2012-12-13 15:52:19 -0800 |
---|---|---|
committer | Steve Klabnik <steve@steveklabnik.com> | 2012-12-14 18:54:32 -0500 |
commit | 8f8397e0a4ea2bbc27d4bba60088286217314807 (patch) | |
tree | 0c5bc9559b1028a2c4a2df36ddb59171d2bd1257 /activesupport/CHANGELOG.md | |
parent | f447240b0565fa48f0dbe9341a7bb0feff938dab (diff) | |
download | rails-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.md | 6 |
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 |