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
This commit is contained in:
Andrew C. Oliver 2002-06-26 12:25:44 +00:00
parent 3d30c55466
commit 4eb8d195bd

View File

@ -292,17 +292,43 @@ public class UnicodeString
public int serialize(int offset, byte [] data) 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()); LittleEndian.putShort(data, 0 + offset, getCharCount());
data[ 2 + offset ] = getOptionFlags(); data[ 2 + offset ] = getOptionFlags();
if (!isUncompressedUnicode()) // System.out.println("Unicode: We've got "+retval[2]+" for our option flag");
{ try {
StringUtil.putCompressedUnicode(getString(), data, 0x3 + offset); 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 catch (Exception e) {
{ if (getOptionFlags() == 0)
StringUtil.putUncompressedUnicode(getString(), data, {
0x3 + offset); StringUtil.putCompressedUnicode(getString(), data, 0x3 +
offset);
}
else
{
StringUtil.putUncompressedUnicode(getString(), data,
0x3 + offset);
}
} }
return getRecordSize(); return getRecordSize();
} }