From: Andrew C. Oliver Date: Wed, 26 Jun 2002 12:25:44 +0000 (+0000) Subject: This supposidly makes japanese text work. X-Git-Tag: REL_1_10~285 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=9868b6fec67c68eacffbe6aa846af27b6588292f;p=poi.git This supposidly makes japanese text work. PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352724 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/java/org/apache/poi/hssf/record/UnicodeString.java b/src/java/org/apache/poi/hssf/record/UnicodeString.java index d56b660d43..af594a6673 100644 --- a/src/java/org/apache/poi/hssf/record/UnicodeString.java +++ b/src/java/org/apache/poi/hssf/record/UnicodeString.java @@ -292,17 +292,43 @@ public class UnicodeString public int serialize(int offset, byte [] data) { + int charsize = 1; + + if (getOptionFlags() == 1) + { + charsize = 2; + } + + // byte[] retval = new byte[ 3 + (getString().length() * charsize)]; LittleEndian.putShort(data, 0 + offset, getCharCount()); data[ 2 + offset ] = getOptionFlags(); - if (!isUncompressedUnicode()) - { - StringUtil.putCompressedUnicode(getString(), data, 0x3 + offset); +// System.out.println("Unicode: We've got "+retval[2]+" for our option flag"); + try { + String unicodeString = new +String(getString().getBytes("Unicode"),"Unicode"); + if (getOptionFlags() == 0) + { + StringUtil.putCompressedUnicode(unicodeString, data, 0x3 + +offset); + } + else + { + StringUtil.putUncompressedUnicode(unicodeString, data, + 0x3 + offset); + } } - else - { - StringUtil.putUncompressedUnicode(getString(), data, - 0x3 + offset); + catch (Exception e) { + if (getOptionFlags() == 0) + { + StringUtil.putCompressedUnicode(getString(), data, 0x3 + + offset); + } + else + { + StringUtil.putUncompressedUnicode(getString(), data, + 0x3 + offset); + } } return getRecordSize(); }