static final Charset unicode_set = Charset.forName("UTF-8");
static String string(int[] bytes, int s, int l) {
- byte[] b = new byte[bytes.length];
- for (int i = 0; i < l; i++)
+ if (s + l > bytes.length) {
+ if (s > bytes.length) {
+ s = bytes.length;
+ l = 0;
+ } else {
+ l = bytes.length - s;
+ }
+ }
+
+ int i;
+ for (i = l - 1; i >= 0; i--)
+ if (bytes[s+i] != 0)
+ break;
+
+ l = i + 1;
+ byte[] b = new byte[l];
+
+ for (i = 0; i < l; i++)
b[i] = (byte) bytes[s+i];
- return new String(b, unicode_set);
+ String n = new String(b, unicode_set);
+ return n;
}
static int hexbyte(String s, int i) {