Index: gnu/java/io/encode/EncoderUTF8.java
===================================================================
RCS file: /cvs/classpath/gnu/java/io/encode/EncoderUTF8.java,v
retrieving revision 1.2
diff -u -r1.2 EncoderUTF8.java
--- gnu/java/io/encode/EncoderUTF8.java	2000/03/16 23:51:37	1.2
+++ gnu/java/io/encode/EncoderUTF8.java	2001/06/23 06:18:26
@@ -99,23 +99,23 @@
 {
   for (int i = buf_offset; i < len; i++)
     {
-      if (buf[i] <= 0x007F)
+      if (buf[i] >= 0x0000 && buf[i] <= 0x007F)
         {
           bbuf[bbuf_offset] = (byte)(buf[i] & 0xFF);
           ++bbuf_offset;
         }
       else if (buf[i] <= 0x07FF)
         {
-          bbuf[bbuf_offset] = (byte)(0xC0 | (buf[i] >> 6));
+          bbuf[bbuf_offset] = (byte)(0xC0 | ((buf[i] >> 6) & 0x3F));
           ++bbuf_offset;
           bbuf[bbuf_offset] = (byte)(0x80 | (buf[i] & 0x3F));
           ++bbuf_offset;
         }
       else 
         {
-          bbuf[bbuf_offset] = (byte)(0xE0 | (buf[i] >> 12));
+          bbuf[bbuf_offset] = (byte)(0xE0 | ((buf[i] >> 12) & 0x0F));
           ++bbuf_offset;
-          bbuf[bbuf_offset] = (byte)(0xC0 | (buf[i] >> 6));
+          bbuf[bbuf_offset] = (byte)(0x80 | ((buf[i] >> 6) & 0x3F));
           ++bbuf_offset;
           bbuf[bbuf_offset] = (byte)(0x80 | (buf[i] & 0x3F));
           ++bbuf_offset;
