Re: [Json] Call for Consensus: Proposed Text for "8.1 Character Encoding"

"HANSEN, TONY L" <> Thu, 23 March 2017 18:56 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 5B70E129BDE for <>; Thu, 23 Mar 2017 11:56:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Gep4ieGNsMkD for <>; Thu, 23 Mar 2017 11:56:34 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id B1C85129BAB for <>; Thu, 23 Mar 2017 11:56:34 -0700 (PDT)
Received: from pps.filterd ( []) by ( with SMTP id v2NItXir010208; Thu, 23 Mar 2017 14:56:32 -0400
Received: from ( []) by with ESMTP id 29cks60tm4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Mar 2017 14:56:30 -0400
Received: from (localhost []) by (8.14.5/8.14.5) with ESMTP id v2NIuRY6026083; Thu, 23 Mar 2017 14:56:28 -0400
Received: from ( []) by (8.14.5/8.14.5) with ESMTP id v2NIuHOf025835 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 23 Mar 2017 14:56:22 -0400
Received: from ( []) by (RSA Interceptor); Thu, 23 Mar 2017 18:56:05 GMT
Received: from ([]) by ([]) with mapi id 14.03.0319.002; Thu, 23 Mar 2017 14:56:05 -0400
From: "HANSEN, TONY L" <>
To: "Matthew A. Miller" <>, "" <>
Thread-Topic: [Json] Call for Consensus: Proposed Text for "8.1 Character Encoding"
Date: Thu, 23 Mar 2017 18:56:03 +0000
Message-ID: <>
References: <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
x-originating-ip: []
Content-Type: text/plain; charset="utf-8"
Content-ID: <7C1602DDC4196F45B300378E689E3CFA@LOCAL>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-RSA-Inspected: yes
X-RSA-Classifications: public
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-03-23_18:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_policy_notspam policy=outbound_policy score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1702020001 definitions=main-1703230162
Archived-At: <>
Subject: Re: [Json] Call for Consensus: Proposed Text for "8.1 Character Encoding"
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "JavaScript Object Notation \(JSON\) WG mailing list" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 23 Mar 2017 18:56:36 -0000

I would still like to see Julian’s small table on differentiating between UTF variants added as an appendix.

	Tony Hansen

On 3/23/17, 10:40 AM, "json on behalf of Matthew A. Miller" < on behalf of> wrote:

    Hello JSONbis,
    It looks like we have consensus for the following text for all of
    Section 8.1:
    JSON text MUST be encoded in UTF-8, UTF-16, or UTF-32 Section 3 of
    [UNICODE].  The default encoding is UTF-8, and JSON texts that are
    encoded in UTF-8 are interoperable in the sense that they will be
    read successfully by the maximum number of implementations; there are
    many implementations that cannot successfully read texts encoded in
    UTF-16 or UTF-32. Text encoded in character encodings other than UTF-8,
    UTF-16, or UTF-32 cannot be used with the media type "application/json".
    Implementations MUST NOT add a byte order mark (U+FEFF) to the
    beginning of a JSON text.  In the interests of interoperability,
    implementations that parse JSON texts MAY ignore the presence of a
    byte order mark rather than treating it as an error.
    Recipients that wish to support Unicode encodings other than UTF-8
    can do this using a detection mechanism that is based on the fact
    that the first character will always have a Unicode code point
    greater than 0 and less than 128, thus the UTF-16/32 variants can
    be detected by inspecting the first octets for nulls.
    Please speak now if you have any objections.
    Thank you all,
    - m&m
    Matthew A. Miller
    JSONbis Chair