]> source.dussan.org Git - poi.git/commitdiff
This supposidly makes japanese text work.
authorAndrew C. Oliver <acoliver@apache.org>
Wed, 26 Jun 2002 12:25:44 +0000 (12:25 +0000)
committerAndrew C. Oliver <acoliver@apache.org>
Wed, 26 Jun 2002 12:25:44 +0000 (12:25 +0000)
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

src/java/org/apache/poi/hssf/record/UnicodeString.java

index d56b660d43c80e1984130be49fc9f709ce06bae6..af594a66736e51605a9789a3085614a99fc022e6 100644 (file)
@@ -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();
     }