From 98fc1b887a5a5cd84d1f159555ce1030f64506d4 Mon Sep 17 00:00:00 2001 From: Alan Liu Date: Wed, 7 Nov 2001 18:48:23 +0000 Subject: [PATCH] ICU-1423 make escape() handle supplementals X-SVN-Rev: 6666 --- icu4j/src/com/ibm/icu/impl/Utility.java | 25 +++++++++---------------- icu4j/src/com/ibm/util/Utility.java | 25 +++++++++---------------- 2 files changed, 18 insertions(+), 32 deletions(-) diff --git a/icu4j/src/com/ibm/icu/impl/Utility.java b/icu4j/src/com/ibm/icu/impl/Utility.java index 13c867921fa..099b745a86a 100755 --- a/icu4j/src/com/ibm/icu/impl/Utility.java +++ b/icu4j/src/com/ibm/icu/impl/Utility.java @@ -5,8 +5,8 @@ ******************************************************************************* * * $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/icu/impl/Utility.java,v $ - * $Date: 2001/10/22 05:35:12 $ - * $Revision: 1.9 $ + * $Date: 2001/11/07 18:48:23 $ + * $Revision: 1.10 $ * ***************************************************************************************** */ @@ -612,26 +612,19 @@ public final class Utility { */ public static final String escape(String s) { StringBuffer buf = new StringBuffer(); - for (int i=0; i= ' ' && c <= 0x007F) { if (c == '\\') { buf.append("\\\\"); // That is, "\\" } else { - buf.append(c); + buf.append((char)c); } } else { - buf.append("\\u"); - if (c < 0x1000) { - buf.append('0'); - if (c < 0x100) { - buf.append('0'); - if (c < 0x10) { - buf.append('0'); - } - } - } - buf.append(Integer.toHexString(c)); + boolean four = c <= 0xFFFF; + buf.append(four ? "\\u" : "\\U"); + hex(c, four ? 4 : 8, buf); } } return buf.toString(); diff --git a/icu4j/src/com/ibm/util/Utility.java b/icu4j/src/com/ibm/util/Utility.java index 4509ad9a9e3..9870cdf349a 100755 --- a/icu4j/src/com/ibm/util/Utility.java +++ b/icu4j/src/com/ibm/util/Utility.java @@ -5,8 +5,8 @@ ******************************************************************************* * * $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/util/Attic/Utility.java,v $ - * $Date: 2001/10/22 05:35:12 $ - * $Revision: 1.9 $ + * $Date: 2001/11/07 18:48:23 $ + * $Revision: 1.10 $ * ***************************************************************************************** */ @@ -612,26 +612,19 @@ public final class Utility { */ public static final String escape(String s) { StringBuffer buf = new StringBuffer(); - for (int i=0; i= ' ' && c <= 0x007F) { if (c == '\\') { buf.append("\\\\"); // That is, "\\" } else { - buf.append(c); + buf.append((char)c); } } else { - buf.append("\\u"); - if (c < 0x1000) { - buf.append('0'); - if (c < 0x100) { - buf.append('0'); - if (c < 0x10) { - buf.append('0'); - } - } - } - buf.append(Integer.toHexString(c)); + boolean four = c <= 0xFFFF; + buf.append(four ? "\\u" : "\\U"); + hex(c, four ? 4 : 8, buf); } } return buf.toString();