java.nio.charset.CoderResult.unmappableForLength()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(7.7k)|赞(0)|评价(0)|浏览(135)

本文整理了Java中java.nio.charset.CoderResult.unmappableForLength()方法的一些代码示例,展示了CoderResult.unmappableForLength()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。CoderResult.unmappableForLength()方法的具体详情如下:
包路径:java.nio.charset.CoderResult
类名称:CoderResult
方法名:unmappableForLength

CoderResult.unmappableForLength介绍

[英]Gets a CoderResult object indicating an unmappable character error.
[中]获取指示不可映射字符错误的CoderResult对象。

代码示例

代码示例来源:origin: robovm/robovm

@Override protected CoderResult decodeLoop(ByteBuffer in, CharBuffer out) {
  if (!in.hasRemaining()) {
    return CoderResult.UNDERFLOW;
  }
  data[INPUT_OFFSET] = getArray(in);
  data[OUTPUT_OFFSET]= getArray(out);
  try {
    int error = NativeConverter.decode(converterHandle, input, inEnd, output, outEnd, data, false);
    if (ICU.U_FAILURE(error)) {
      if (error == ICU.U_BUFFER_OVERFLOW_ERROR) {
        return CoderResult.OVERFLOW;
      } else if (error == ICU.U_INVALID_CHAR_FOUND) {
        return CoderResult.unmappableForLength(data[INVALID_BYTES]);
      } else if (error == ICU.U_ILLEGAL_CHAR_FOUND) {
        return CoderResult.malformedForLength(data[INVALID_BYTES]);
      } else {
        throw new AssertionError(error);
      }
    }
    // Decoding succeeded: give us more data.
    return CoderResult.UNDERFLOW;
  } finally {
    setPosition(in);
    setPosition(out);
  }
}

代码示例来源:origin: robovm/robovm

@Override protected CoderResult encodeLoop(CharBuffer in, ByteBuffer out) {
  if (!in.hasRemaining()) {
    return CoderResult.UNDERFLOW;
  }
  data[INPUT_OFFSET] = getArray(in);
  data[OUTPUT_OFFSET]= getArray(out);
  data[INVALID_CHARS] = 0; // Make sure we don't see earlier errors.
  try {
    int error = NativeConverter.encode(converterHandle, input, inEnd, output, outEnd, data, false);
    if (ICU.U_FAILURE(error)) {
      if (error == ICU.U_BUFFER_OVERFLOW_ERROR) {
        return CoderResult.OVERFLOW;
      } else if (error == ICU.U_INVALID_CHAR_FOUND) {
        return CoderResult.unmappableForLength(data[INVALID_CHARS]);
      } else if (error == ICU.U_ILLEGAL_CHAR_FOUND) {
        return CoderResult.malformedForLength(data[INVALID_CHARS]);
      } else {
        throw new AssertionError(error);
      }
    }
    // Decoding succeeded: give us more data.
    return CoderResult.UNDERFLOW;
  } finally {
    setPosition(in);
    setPosition(out);
  }
}

代码示例来源:origin: com.sun.codemodel/codemodel

/**
 * Returns an unmappable-input result object, with the appropriate
 * input length, for the previously-parsed character.
 */
public CoderResult unmappableResult() {
  return CoderResult.unmappableForLength(isPair ? 2 : 1);
}

代码示例来源:origin: com.sun.xml.bind/jaxb1-impl

/**
 * Returns an unmappable-input result object, with the appropriate
 * input length, for the previously-parsed character.
 */
public CoderResult unmappableResult() {
  return CoderResult.unmappableForLength(isPair ? 2 : 1);
}

代码示例来源:origin: com.unquietcode.tools.jcodemodel/codemodel

/**
 * Returns an unmappable-input result object, with the appropriate
 * input length, for the previously-parsed character.
 */
public CoderResult unmappableResult() {
  return CoderResult.unmappableForLength(isPair ? 2 : 1);
}

代码示例来源:origin: kebernet/shortyz

/**
 * Returns an unmappable-input result object, with the appropriate
 * input length, for the previously-parsed character.
 */
public CoderResult unmappableResult() {
  assert (error == null);
  return CoderResult.unmappableForLength(isPair ? 2 : 1);
}

代码示例来源:origin: sun-jaxb/jaxb-xjc

/**
 * Returns an unmappable-input result object, with the appropriate
 * input length, for the previously-parsed character.
 */
public CoderResult unmappableResult() {
  return CoderResult.unmappableForLength(isPair ? 2 : 1);
}

代码示例来源:origin: adamantoise/robocrosswords

/**
 * Returns an unmappable-input result object, with the appropriate
 * input length, for the previously-parsed character.
 */
public CoderResult unmappableResult() {
  assert (error == null);
  return CoderResult.unmappableForLength(isPair ? 2 : 1);
}

代码示例来源:origin: com.atlassian.confluence.officeconnector/pdf-renderer

protected CoderResult encodeLoop(CharBuffer in, ByteBuffer out) {
  while (in.remaining() > 0) {
    if (out.remaining() < 1) {
      return CoderResult.OVERFLOW;
    }
    final char c = in.get();
    if (c >= 0 && c < 256) {
      out.put((byte) c);
    } else {
      return CoderResult.unmappableForLength(1);
    }
  }
  return CoderResult.UNDERFLOW;
}

代码示例来源:origin: com.github.rjolly/pdf-renderer

protected CoderResult encodeLoop(CharBuffer in, ByteBuffer out) {
  while (in.remaining() > 0) {
    if (out.remaining() < 1) {
      return CoderResult.OVERFLOW;
    }
    final char c = in.get();
    if (c >= 0 && c < 256) {
      out.put((byte) c);
    } else {
      return CoderResult.unmappableForLength(1);
    }
  }
  return CoderResult.UNDERFLOW;
}

代码示例来源:origin: net.java.dev/pdf-renderer

protected CoderResult encodeLoop(CharBuffer in, ByteBuffer out) {
  while (in.remaining() > 0) {
    if (out.remaining() < 1) {
      return CoderResult.OVERFLOW;
    }
    final char c = in.get();
    if (c >= 0 && c < 256) {
      out.put((byte) c);
    } else {
      return CoderResult.unmappableForLength(1);
    }
  }
  return CoderResult.UNDERFLOW;
}

代码示例来源:origin: org.jboss.teiid/teiid-engine

@Override
protected CoderResult implFlush(ByteBuffer out) {
  if (cb.position() != 0) {
    return CoderResult.unmappableForLength(cb.position());
  }
  return super.implFlush(out);
}

代码示例来源:origin: teiid/teiid

@Override
protected CoderResult implFlush(ByteBuffer out) {
  if (cb.position() != 0) {
    return CoderResult.unmappableForLength(cb.position());
  }
  return super.implFlush(out);
}

代码示例来源:origin: net.sf.jmatchparser/jMatchParser-charset

@Override
  protected CoderResult decodeLoop(ByteBuffer in, CharBuffer out) {
    while (true) {
      if (in.remaining() == 0)
        return CoderResult.UNDERFLOW;
      if (out.remaining() == 0)
        return CoderResult.OVERFLOW;
      char c = mapping.charAt(in.get() & 0xFF);
      if (c == '\uFFFD') {
        in.position(in.position() - 1);
        return CoderResult.unmappableForLength(1);
      }
      out.put(c);
    }
  }
}

代码示例来源:origin: com.ibm.icu/icu4j-charset

private final CoderResult encodeTrail(CharBuffer source, char lead, boolean flush) {
  /*
   * ASCII doesn't support characters in the BMP, so if handleSurrogates returns null,
   * we leave fromUChar32 alone (it should store a new codepoint) and call it unmappable.
   */
  CoderResult cr = handleSurrogates(source, lead);
  if (cr != null) {
    return cr;
  } else {
    //source.position(source.position() - 2);
    return CoderResult.unmappableForLength(2);
  }
}

代码示例来源:origin: de.schlichtherle.truezip/truezip-driver-zip

@Override
  protected CoderResult decodeLoop(   final ByteBuffer in,
                    final CharBuffer out) {
    final char[] b2c = byte2char;
    while (in.hasRemaining()) {
      if (!out.hasRemaining())
        return CoderResult.OVERFLOW;
      final char c = b2c[in.get() & 0xFF];
      if (c == REPLACEMENT) {
        in.position(in.position() - 1); // push back
        return CoderResult.unmappableForLength(1);
      }
      out.put(c);
    }
    return CoderResult.UNDERFLOW;
  }
}

代码示例来源:origin: net.sf.jmatchparser/jMatchParser-charset

@Override
  protected CoderResult encodeLoop(CharBuffer in, ByteBuffer out) {
    while (in.remaining() > 0) {
      byte[] bs = encoderMap.get(in.get());
      if (bs == null) {
        in.position(in.position() - 1);
        return CoderResult.unmappableForLength(1);
      } else if (out.remaining() < bs.length) {
        in.position(in.position() - 1);
        return CoderResult.OVERFLOW;
      }
      out.put(bs);
    }
    return CoderResult.UNDERFLOW;
  }
}

代码示例来源:origin: org.xbib/bibliographic-character-sets

@Override
  protected CoderResult encodeLoop(CharBuffer in, ByteBuffer out) {
    while (in.hasRemaining()) {
      char c = in.get();
      if (c > Byte.MAX_VALUE) {
        in.position(in.position() - 1);
        return CoderResult.unmappableForLength(1);
      }
      if (!out.hasRemaining()) {
        in.position(in.position() - 1);
        return CoderResult.OVERFLOW;
      }
      out.put((byte) c);
    }
    return CoderResult.UNDERFLOW;
  }
}

代码示例来源:origin: com.ibm.icu/icu4j-charset

private static CoderResult toUnicodeCallback(CharsetDecoderICU cnv, int sourceChar, int targetUniChar) {
  CoderResult err = CoderResult.UNDERFLOW;
  if (sourceChar > 0xff) {
    cnv.toUBytesArray[0] = (byte)(sourceChar>>8);
    cnv.toUBytesArray[1] = (byte)sourceChar;
    cnv.toULength = 2;
  } else {
    cnv.toUBytesArray[0] = (byte)sourceChar;
    cnv.toULength = 1;
  }
  if (targetUniChar == (UConverterConstants.missingCharMarker-1/* 0xfffe */)) {
    err = CoderResult.unmappableForLength(1);
  } else {
    err = CoderResult.malformedForLength(1);
  }
  return err;
}

代码示例来源:origin: com.ibm.icu/icu4j-charset

protected final CoderResult encodeMalformedOrUnmappable(CharBuffer source, int ch, boolean flush) {
  /*
   * if the character is a lead surrogate, we need to call encodeTrail to attempt to match
   * it up with a trail surrogate. if not, the character is unmappable.
   */
  return (UTF16.isSurrogate((char) ch))
      ? encodeTrail(source, (char) ch, flush)
      : CoderResult.unmappableForLength(1);
}

相关文章