diff options
Diffstat (limited to 'libjava/gnu/gcj/convert/Output_8859_1.java')
-rw-r--r-- | libjava/gnu/gcj/convert/Output_8859_1.java | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/libjava/gnu/gcj/convert/Output_8859_1.java b/libjava/gnu/gcj/convert/Output_8859_1.java index ac04ad6..7ae6a61 100644 --- a/libjava/gnu/gcj/convert/Output_8859_1.java +++ b/libjava/gnu/gcj/convert/Output_8859_1.java @@ -1,4 +1,4 @@ -/* Copyright (C) 1999 Free Software Foundation +/* Copyright (C) 1999, 2000 Free Software Foundation This file is part of libgcj. @@ -10,9 +10,9 @@ package gnu.gcj.convert; /** * Convert Unicode ISO-Latin-1 (8851-1) text. - * The high-order byte of each character is truncated. + * Unrecognized characters are printed as `?'. * @author Per Bothner <bothner@cygnus.com> - * @date Match 1999. + * @date March 1999. */ public class Output_8859_1 extends UnicodeToBytes @@ -30,7 +30,8 @@ public class Output_8859_1 extends UnicodeToBytes inlength = avail; for (int i = inlength; --i >= 0; ) { - buf[count++] = (byte) inbuffer[inpos++]; + char c = inbuffer[inpos++]; + buf[count++] = (byte) ((c > 0xff) ? '?' : c); } this.count = count; return inlength; @@ -45,7 +46,8 @@ public class Output_8859_1 extends UnicodeToBytes inlength = avail; for (int i = inlength; --i >= 0; ) { - buf[count++] = (byte) str.charAt(inpos++); + char c = str.charAt(inpos++); + buf[count++] = (byte) ((c > 0xff) ? '?' : c); } this.count = count; return inlength; |