bradford 02/01/09 12:13:00
Modified: java/src/org/apache/xindice/xml/dom DOMCompressor.java Log: Attempting to fix some encoding problems with UTF-8 characters Revision Changes Path 1.2 +17 -15 xml-xindice/java/src/org/apache/xindice/xml/dom/DOMCompressor.java Index: DOMCompressor.java =================================================================== RCS file: /home/cvs/xml-xindice/java/src/org/apache/xindice/xml/dom/DOMCompressor.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- DOMCompressor.java 6 Dec 2001 19:33:59 -0000 1.1 +++ DOMCompressor.java 9 Jan 2002 20:13:00 -0000 1.2 @@ -56,7 +56,7 @@ * information on the Apache Software Foundation, please see * <http://www.apache.org/>. * - * $Id: DOMCompressor.java,v 1.1 2001/12/06 19:33:59 bradford Exp $ + * $Id: DOMCompressor.java,v 1.2 2002/01/09 20:13:00 bradford Exp $ */ import org.apache.xindice.core.*; @@ -133,35 +133,36 @@ symbolID = st.getSymbol(attr.getName(), nsURI, true); else symbolID = st.getSymbol(attr.getName(), true); - String value = attr.getValue(); writeShort(symbolID); - writeShort((short)value.length()); - write(value.getBytes()); + + byte[] b = attr.getValue().getBytes("UTF-8"); + writeShort((short)b.length); + write(b); break; } case Node.TEXT_NODE: { - String value = node.getNodeValue(); - int valLen = value.length(); + byte[] b = node.getNodeValue().getBytes("UTF-8"); + int valLen = b.length; int sizeType = getSizeType(valLen+5); byte signature = (byte)(Signatures.Char << 0x6); signature |= (byte)(sizeType << 0x2); writeByte(signature); valLen += (getSizeSize(sizeType) + 1); writeSize(sizeType, valLen); - write(value.getBytes()); + write(b); break; } case Node.CDATA_SECTION_NODE: { - String value = node.getNodeValue(); - int valLen = value.length(); + byte[] b = node.getNodeValue().getBytes("UTF-8"); + int valLen = b.length; byte signature = (byte)(Signatures.Decl << 0x6); signature |= (byte)(Signatures.DeclCData << 0x2); writeByte(signature); valLen += 5; writeInt(valLen); - write(value.getBytes()); + write(b); break; } @@ -203,24 +204,25 @@ case Node.PROCESSING_INSTRUCTION_NODE: { String value = node.getNodeName()+" "+node.getNodeValue(); - int valLen = value.length(); + byte[] b = value.getBytes("UTF-8"); + int valLen = b.length; byte signature = (byte)(Signatures.Proc << 0x6); writeByte(signature); valLen += 5; writeInt(valLen); - write(value.getBytes()); + write(b); break; } case Node.COMMENT_NODE: { - String value = node.getNodeValue(); - int valLen = value.length(); + byte[] b = node.getNodeValue().getBytes("UTF-8"); + int valLen = b.length; byte signature = (byte)(Signatures.Decl << 0x6); signature |= (byte)(Signatures.DeclComment << 0x2); writeByte(signature); valLen += 5; writeInt(valLen); - write(value.getBytes()); + write(b); break; }