Index: hssf/record/BoundSheetRecord.java =================================================================== RCS file: /home/cvspublic/jakarta-poi/src/java/org/apache/poi/hssf/record/BoundSheetRecord.java,v retrieving revision 1.6 diff -r1.6 BoundSheetRecord.java 145c145 < field_5_sheetname = new String( data, 8 + offset, nameLength ); --- > field_5_sheetname = StringUtil.getFromCompressedUnicode( data, 8 + offset, nameLength ); Index: hssf/record/FontRecord.java =================================================================== RCS file: /home/cvspublic/jakarta-poi/src/java/org/apache/poi/hssf/record/FontRecord.java,v retrieving revision 1.6 diff -r1.6 FontRecord.java 167c167 < field_11_font_name = new String(data, 16, --- > field_11_font_name = StringUtil.getFromCompressedUnicode(data, 16, Index: hssf/record/FooterRecord.java =================================================================== RCS file: /home/cvspublic/jakarta-poi/src/java/org/apache/poi/hssf/record/FooterRecord.java,v retrieving revision 1.8 diff -r1.8 FooterRecord.java 122c122 < field_2_footer = new String(data, 3 + offset, // [Shawn] Changed 1 to 3 for offset of string --- > field_2_footer = StringUtil.getFromCompressedUnicode(data, 3 + offset, // [Shawn] Changed 1 to 3 for offset of string Index: hssf/record/FormatRecord.java =================================================================== RCS file: /home/cvspublic/jakarta-poi/src/java/org/apache/poi/hssf/record/FormatRecord.java,v retrieving revision 1.7 diff -r1.7 FormatRecord.java 135c135 < field_4_formatstring = new String(data, 5 + offset, field_3_unicode_len ); --- > field_4_formatstring = StringUtil.getFromCompressedUnicode(data, 5 + offset, field_3_unicode_len ); Index: hssf/record/HeaderRecord.java =================================================================== RCS file: /home/cvspublic/jakarta-poi/src/java/org/apache/poi/hssf/record/HeaderRecord.java,v retrieving revision 1.8 diff -r1.8 HeaderRecord.java 122c122 < field_2_header = new String(data, 3 + offset, // [Shawn] Changed 1 to 3 for offset of string --- > field_2_header = StringUtil.getFromCompressedUnicode(data, 3 + offset, // [Shawn] Changed 1 to 3 for offset of string Index: hssf/record/LabelRecord.java =================================================================== RCS file: /home/cvspublic/jakarta-poi/src/java/org/apache/poi/hssf/record/LabelRecord.java,v retrieving revision 1.4 diff -r1.4 LabelRecord.java 160c160 < field_6_value = new String(data, 9 + offset, getStringLength()); --- > field_6_value = StringUtil.getFromCompressedUnicode(data, 9 + offset, getStringLength()); Index: hssf/record/NameRecord.java =================================================================== RCS file: /home/cvspublic/jakarta-poi/src/java/org/apache/poi/hssf/record/NameRecord.java,v retrieving revision 1.9 diff -r1.9 NameRecord.java 759c759 < field_12_name_text = new String(data, 15 + offset, --- > field_12_name_text = StringUtil.getFromCompressedUnicode(data, 15 + offset, 767c767 < field_14_custom_menu_text = new String(data, start_of_custom_menu_text + offset, --- > field_14_custom_menu_text = StringUtil.getFromCompressedUnicode(data, start_of_custom_menu_text + offset, 771c771 < field_15_description_text = new String(data, start_of_description_text + offset, --- > field_15_description_text = StringUtil.getFromCompressedUnicode(data, start_of_description_text + offset, 775c775 < field_16_help_topic_text = new String(data, start_of_help_topic_text + offset, --- > field_16_help_topic_text = StringUtil.getFromCompressedUnicode(data, start_of_help_topic_text + offset, 779c779 < field_17_status_bar_text = new String(data, start_of_status_bar_text + offset, --- > field_17_status_bar_text = StringUtil.getFromCompressedUnicode(data, start_of_status_bar_text + offset, Index: hssf/record/StringRecord.java =================================================================== RCS file: /home/cvspublic/jakarta-poi/src/java/org/apache/poi/hssf/record/StringRecord.java,v retrieving revision 1.3 diff -r1.3 StringRecord.java 137c137 < field_3_string = new String(data, 3 + offset, field_1_string_length); --- > field_3_string = StringUtil.getFromCompressedUnicode(data, 3 + offset, field_1_string_length); Index: hssf/record/StyleRecord.java =================================================================== RCS file: /home/cvspublic/jakarta-poi/src/java/org/apache/poi/hssf/record/StyleRecord.java,v retrieving revision 1.4 diff -r1.4 StyleRecord.java 137c137 < field_3_name = new String(data, 3 + offset, --- > field_3_name = StringUtil.getFromCompressedUnicode(data, 3 + offset, Index: hssf/record/WriteAccessRecord.java =================================================================== RCS file: /home/cvspublic/jakarta-poi/src/java/org/apache/poi/hssf/record/WriteAccessRecord.java,v retrieving revision 1.2 diff -r1.2 WriteAccessRecord.java 118c118 < field_1_username = new String(data, 3 + offset, data.length - 4); --- > field_1_username = StringUtil.getFromCompressedUnicode(data, 3 + offset, data.length - 4); Index: util/StringUtil.java =================================================================== RCS file: /home/cvspublic/jakarta-poi/src/java/org/apache/poi/util/StringUtil.java,v retrieving revision 1.8 diff -r1.8 StringUtil.java 199a200,219 > /** > * read compressed unicode(8bit) > * > * @author Toshiaki Kamoshida(kamoshida.toshiaki at future dot co dot jp) > * > * @param string byte array to read > * @param offset offset to read byte array > * @param len length to read byte array > * @return String generated String instance by reading byte array > */ > public static String getFromCompressedUnicode(final byte[] string, > final int offset, final int len){ > try{ > return new String(string,offset,len,"ISO-8859-1"); > } > catch(UnsupportedEncodingException e){ > throw new InternalError();/* unreachable */ > } > } >