From 69b7c794638a6425944a1222a42ae21edf25e3db Mon Sep 17 00:00:00 2001 From: "Andrew C. Oliver" Date: Sun, 28 Jul 2002 22:50:41 +0000 Subject: [PATCH] backed out this code it causes http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10393 git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352813 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/poi/util/StringUtil.java | 55 ++++++-------------- 1 file changed, 15 insertions(+), 40 deletions(-) diff --git a/src/java/org/apache/poi/util/StringUtil.java b/src/java/org/apache/poi/util/StringUtil.java index 93a9f39cc..b1b5bc841 100644 --- a/src/java/org/apache/poi/util/StringUtil.java +++ b/src/java/org/apache/poi/util/StringUtil.java @@ -62,14 +62,8 @@ import java.text.FieldPosition; /** * Title: String Utility Description: Collection of string handling utilities - * - * Now it is quite confusing: the method pairs, in which - * one of them write data and other read written data are: - * putUncompressedUnicodeHigh and getFromUnicode - * putUncompressedUnicode and getFromUnicodeHigh * *@author Andrew C. Oliver - *@author Sergei Kozello (sergeikozello at mail.ru) *@created May 10, 2002 *@version 1.0 */ @@ -85,8 +79,6 @@ public class StringUtil { * given a byte array of 16-bit unicode characters, compress to 8-bit and * return a string * - * { 0x16, 0x00 } -> 0x16 - * *@param string the byte array to be converted *@param offset the initial offset into the * byte array. it is assumed that string[ offset ] and string[ offset + @@ -111,37 +103,22 @@ public class StringUtil { if ((len < 0) || (((string.length - offset) / 2) < len)) { throw new IllegalArgumentException("Illegal length"); } - - char[] chars = new char[ len ]; - for ( int i = 0; i < chars.length; i++ ) { - chars[i] = (char)( string[ offset + ( 2*i ) ] + - ( string[ offset + ( 2*i+1 ) ] << 8 ) ); + byte[] bstring = new byte[len]; + int index = offset; + // start with high bits. + + for (int k = 0; k < len; k++) { + bstring[k] = string[index]; + index += 2; } - - return new String( chars ); + return new String(bstring); } - /** - * given a byte array of 16-bit unicode characters, compress to 8-bit and - * return a string - * - * { 0x16, 0x00 } -> 0x16 - * - *@param string the byte array to be converted - *@return the converted string - */ - - public static String getFromUnicodeHigh( final byte[] string ) { - return getFromUnicodeHigh( string, 0, string.length / 2 ); - } - /** * given a byte array of 16-bit unicode characters, compress to 8-bit and * return a string - * - * { 0x00, 0x16 } -> 0x16 * *@param string the byte array to be converted *@param offset the initial offset into the @@ -167,23 +144,21 @@ public class StringUtil { if ((len < 0) || (((string.length - offset) / 2) < len)) { throw new IllegalArgumentException("Illegal length"); } + byte[] bstring = new byte[len]; + int index = offset + 1; + // start with low bits. - - char[] chars = new char[ len ]; - for ( int i = 0; i < chars.length; i++ ) { - chars[i] = (char)( ( string[ offset + ( 2*i ) ] << 8 ) + - string[ offset + ( 2*i+1 ) ] ); + for (int k = 0; k < len; k++) { + bstring[k] = string[index]; + index += 2; } - - return new String( chars ); + return new String(bstring); } /** * given a byte array of 16-bit unicode characters, compress to 8-bit and * return a string - * - * { 0x00, 0x16 } -> 0x16 * *@param string the byte array to be converted *@return the converted string