diff options
author | Brian Jones <cbj@gnu.org> | 2001-06-25 04:53:47 +0000 |
---|---|---|
committer | Brian Jones <cbj@gnu.org> | 2001-06-25 04:53:47 +0000 |
commit | c84f321fd0709767ee49f6e528daa23ae97a0955 (patch) | |
tree | 00fbfdb5b78950eee29bca546814e2d5cab4eee8 | |
parent | c91e001c1848e4d310474d87489d027c794fd6d7 (diff) | |
download | classpath-c84f321fd0709767ee49f6e528daa23ae97a0955.tar.gz |
* gnu/java/io/encode/EncoderUTF8.java (convertToBytes): create
valid UTF8 encoding.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | THANKYOU | 1 | ||||
-rw-r--r-- | gnu/java/io/encode/EncoderUTF8.java | 8 |
3 files changed, 9 insertions, 4 deletions
@@ -1,3 +1,7 @@ +2001-06-25 Takashi Okamoto <toraneko@kun.ne.jp> + * gnu/java/io/encode/EncoderUTF8.java (convertToBytes): create + valid UTF8 encoding. + 2001-06-25 Brian Jones <cbj@gnu.org> * native/jni/mprec.h: new file from gcj @@ -16,3 +16,4 @@ Mark Wielaard (mark@klomp.org) Gaute Smaaland (gs@sevenmountains.no) Weldon Washburn (mailto:weldon.washburn@intel.com) Adam Welc (welc@cs.purdue.edu) +Takashi Okamoto (toraneko@kun.ne.jp) 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; |