summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorBrian Jones <cbj@gnu.org>2001-06-25 04:53:47 +0000
committerBrian Jones <cbj@gnu.org>2001-06-25 04:53:47 +0000
commitc84f321fd0709767ee49f6e528daa23ae97a0955 (patch)
tree00fbfdb5b78950eee29bca546814e2d5cab4eee8 /gnu
parentc91e001c1848e4d310474d87489d027c794fd6d7 (diff)
downloadclasspath-c84f321fd0709767ee49f6e528daa23ae97a0955.tar.gz
* gnu/java/io/encode/EncoderUTF8.java (convertToBytes): create
valid UTF8 encoding.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/java/io/encode/EncoderUTF8.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/gnu/java/io/encode/EncoderUTF8.java b/gnu/java/io/encode/EncoderUTF8.java
index d6488b798..466be367b 100644
--- a/gnu/java/io/encode/EncoderUTF8.java
+++ b/gnu/java/io/encode/EncoderUTF8.java
@@ -99,23 +99,23 @@ convertToBytes(char[] buf, int buf_offset, int len, byte[] bbuf,
{
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;