Path: csiph.com!eeepc.pasdenom.info!news.pasdenom.info!news.dougwise.org!nntpfeed.proxad.net!proxad.net!feeder1-2.proxad.net!weretis.net!feeder4.news.weretis.net!news.albasani.net!not-for-mail From: Lew Newsgroups: comp.lang.java.programmer Subject: Re: Why No Supplemental Characters In Character Literals? Date: Fri, 04 Feb 2011 07:49:57 -0500 Organization: albasani.net Lines: 46 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: news.albasani.net 5+5xfXJ0eU4t9SXdbycXYQ7ivRZuw7jBn6Ryp/S12ehxIy/2GArUT89B6bPKCVsdHxbkT6R4apkI9lPBnYpKTA== NNTP-Posting-Date: Fri, 4 Feb 2011 12:48:57 +0000 (UTC) In-Reply-To: Cancel-Lock: sha1:QlNyIfFH052kNGe4tzAe+ECzqho= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101208 Thunderbird/3.1.7 Injection-Info: news.albasani.net; logging-data="Nnk5ZILbs8DsydBqlKZicpbPSdnldFVSnt8iyLiMUkmC0vBJXq+SZ91ocZOtUWf2mjPX0FU1OYnV77U/AnOlnnwyvVAQnPiKi7JHM+oISAZJdri92jVMMurcR/aS+T0O"; mail-complaints-to="abuse@albasani.net" Xref: csiph.com comp.lang.java.programmer:26031 Lawrence D'Oliveiro wrote: >>>> Why was it decreed in the language spec that characters beyond U+FFFF are >>>> not allowed in character literals, when they are allowed everywhere else >>>> (in string literals, in the program text, in character and string values >>>> etc)? It takes TWO 'char' values to represent a supplemental character. 'char' != "character". READ the documentation. Lew wrote: >>> Because a 'char' type holds only 16 bits. Lawrence D'Oliveiro wrote: >> No it doesn’t. Otherwise you wouldn’t be allowed supplementary characters in >> character and string values. Which you are. I have an idea for you to try - check the documentation. and you see in §4.2: "... char, whose values are 16-bit unsigned integers ..." Mike Schilling wrote: > Yes, it does (contain 16 bits.) It was defined to do so before there were > supplemental characters, and there was no way to extend it without breaking > compatibility with some older programs. > > You can't put a supplementary character in a char. You can put them in > strings, but only encoded as UTF-16, i.e. into two 16-bit chars. As the tutorials and JLS tell you, should you deign to read the documentation. (It's not a bad idea to do so.) -- Lew Ceci n'est pas une fenêtre. .___________. |###] | [###| |##/ | *\##| |#/ * | \#| |#----|----#| || | * || |o * | o| |_____|_____| |===========|