Java 类java.nio.charset.CodingErrorAction 实例源码
项目:lazycat
文件:B2CConverter.java
public B2CConverter(String encoding, boolean replaceOnError) throws IOException {
byte[] left = new byte[LEFTOVER_SIZE];
leftovers = ByteBuffer.wrap(left);
CodingErrorAction action;
if (replaceOnError) {
action = CodingErrorAction.REPLACE;
} else {
action = CodingErrorAction.REPORT;
}
Charset charset = getCharset(encoding);
// Special case. Use the Apache Harmony based UTF-8 decoder because it
// - a) rejects invalid sequences that the JVM decoder does not
// - b) fails faster for some invalid sequences
if (charset.equals(UTF_8)) {
decoder = new Utf8Decoder();
} else {
decoder = charset.newDecoder();
}
decoder.onMalformedInput(action);
decoder.onUnmappableCharacter(action);
}
项目:incubator-netbeans
文件:HtmlEditorSupport.java
private boolean canDecodeFile(FileObject fo, String encoding) {
CharsetDecoder decoder = Charset.forName(encoding).newDecoder().onUnmappableCharacter(CodingErrorAction.REPORT).onMalformedInput(CodingErrorAction.REPORT);
try {
BufferedInputStream bis = new BufferedInputStream(fo.getInputStream());
//I probably have to create such big buffer since I am not sure
//how to cut the file to smaller byte arrays so it cannot happen
//that an encoded character is divided by the arrays border.
//In such case it might happen that the method woult return
//incorrect value.
byte[] buffer = new byte[(int) fo.getSize()];
bis.read(buffer);
bis.close();
decoder.decode(ByteBuffer.wrap(buffer));
return true;
} catch (CharacterCodingException ex) {
//return false
} catch (IOException ioe) {
Logger.getLogger("global").log(Level.WARNING, "Error during charset verification", ioe);
}
return false;
}
项目:OpenDiabetes
文件:JDBCClobFile.java
protected final void setEncoding(final String encoding)
throws UnsupportedEncodingException {
final Charset charSet = charsetForName(encoding);
final CharsetEncoder encoder = charSet.newEncoder().onMalformedInput(
CodingErrorAction.REPLACE).onUnmappableCharacter(
CodingErrorAction.REPLACE);
final float maxBytesPerChar = encoder.maxBytesPerChar();
final float averageBytesPerChar = encoder.averageBytesPerChar();
final boolean fixedWidthCharset =
(maxBytesPerChar == Math.round(maxBytesPerChar))
&& (maxBytesPerChar == averageBytesPerChar);
//
m_fixedWidthCharset = fixedWidthCharset;
m_maxCharWidth = Math.round(maxBytesPerChar);
m_charset = charSet;
m_encoder = encoder;
m_encoding = m_charset.name();
}
项目:hadoop-oss
文件:Text.java
private static String decode(ByteBuffer utf8, boolean replace)
throws CharacterCodingException {
CharsetDecoder decoder = DECODER_FACTORY.get();
if (replace) {
decoder.onMalformedInput(
java.nio.charset.CodingErrorAction.REPLACE);
decoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
}
String str = decoder.decode(utf8).toString();
// set decoder back to its default value: REPORT
if (replace) {
decoder.onMalformedInput(CodingErrorAction.REPORT);
decoder.onUnmappableCharacter(CodingErrorAction.REPORT);
}
return str;
}
项目:luna
文件:CharsetEncoderByteIterator.java
/**
* Constructs a new encoder instance that iterates over {@code string}, converting
* it to bytes using the charset {@code charset}.
*
* <p>The encoder reads up to {@code stepSize} characters at the same time,
* buffering the results internally. {@code stepSize} must be at least 2 (this is to
* ensure that surrogate pairs are processed correctly).
*
* @param string the string to iterate over, must not be {@code null}
* @param charset the charset to use for encoding characters to bytes, must not be {@code null}
* @param stepSize the number to characters to try encoding in each encoding step, must be
* positive
* @throws NullPointerException if {@code string} or {@code charset} is {@code null}
* @throws IllegalArgumentException if {@code stepSize} is lesser than 2
*/
public CharsetEncoderByteIterator(String string, Charset charset, int stepSize) {
Objects.requireNonNull(string);
Check.gt(stepSize, 1);
// use the same settings as String.getBytes(Charset)
this.encoder = charset.newEncoder()
.onMalformedInput(CodingErrorAction.REPLACE)
.onUnmappableCharacter(CodingErrorAction.REPLACE)
.reset();
this.string = string;
this.idx = 0;
this.byteIdx = 0;
this.flushed = false;
// no need to allocate more chars than what the string can give us
stepSize = Math.min(stepSize, string.length());
stepSize = Math.max(2, stepSize); // but ensure we can always handle surrogate pairs
this.in = CharBuffer.allocate(stepSize);
int outBufferSize = (int) ((stepSize + 1) * encoder.maxBytesPerChar());
this.out = ByteBuffer.allocate(outBufferSize);
out.flip();
}
项目:chromium-net-for-android
文件:NetStringUtil.java
/**
* Convert text in a given character set to a Unicode string. Any invalid
* characters are replaced with U+FFFD. Returns null if the character set
* is not recognized.
* @param text ByteBuffer containing the character array to convert.
* @param charsetName Character set it's in encoded in.
* @return: Unicode string on success, null on failure.
*/
@CalledByNative
private static String convertToUnicodeWithSubstitutions(
ByteBuffer text,
String charsetName) {
try {
Charset charset = Charset.forName(charsetName);
// TODO(mmenke): Investigate if Charset.decode() can be used
// instead. The question is whether it uses the proper replace
// character. JDK CharsetDecoder docs say U+FFFD is the default,
// but Charset.decode() docs say it uses the "charset's default
// replacement byte array".
CharsetDecoder decoder = charset.newDecoder();
decoder.onMalformedInput(CodingErrorAction.REPLACE);
decoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
decoder.replaceWith("\uFFFD");
return decoder.decode(text).toString();
} catch (Exception e) {
return null;
}
}
项目:tomcat7
文件:B2CConverter.java
public B2CConverter(String encoding, boolean replaceOnError)
throws IOException {
byte[] left = new byte[LEFTOVER_SIZE];
leftovers = ByteBuffer.wrap(left);
CodingErrorAction action;
if (replaceOnError) {
action = CodingErrorAction.REPLACE;
} else {
action = CodingErrorAction.REPORT;
}
Charset charset = getCharset(encoding);
// Special case. Use the Apache Harmony based UTF-8 decoder because it
// - a) rejects invalid sequences that the JVM decoder does not
// - b) fails faster for some invalid sequences
if (charset.equals(UTF_8)) {
decoder = new Utf8Decoder();
} else {
decoder = charset.newDecoder();
}
decoder.onMalformedInput(action);
decoder.onUnmappableCharacter(action);
}
项目:FirefoxData-android
文件:AbstractSessionOutputBuffer.java
protected AbstractSessionOutputBuffer(
final OutputStream outstream,
final int buffersize,
final Charset charset,
final int minChunkLimit,
final CodingErrorAction malformedCharAction,
final CodingErrorAction unmappableCharAction) {
super();
Args.notNull(outstream, "Input stream");
Args.notNegative(buffersize, "Buffer size");
this.outstream = outstream;
this.buffer = new ByteArrayBuffer(buffersize);
this.charset = charset != null ? charset : Consts.ASCII;
this.ascii = this.charset.equals(Consts.ASCII);
this.encoder = null;
this.minChunkLimit = minChunkLimit >= 0 ? minChunkLimit : 512;
this.metrics = createTransportMetrics();
this.onMalformedCharAction = malformedCharAction != null ? malformedCharAction :
CodingErrorAction.REPORT;
this.onUnmappableCharAction = unmappableCharAction != null? unmappableCharAction :
CodingErrorAction.REPORT;
}
项目:FirefoxData-android
文件:AbstractSessionOutputBuffer.java
protected void init(final OutputStream outstream, final int buffersize, final HttpParams params) {
Args.notNull(outstream, "Input stream");
Args.notNegative(buffersize, "Buffer size");
Args.notNull(params, "HTTP parameters");
this.outstream = outstream;
this.buffer = new ByteArrayBuffer(buffersize);
final String charset = (String) params.getParameter(CoreProtocolPNames.HTTP_ELEMENT_CHARSET);
this.charset = charset != null ? Charset.forName(charset) : Consts.ASCII;
this.ascii = this.charset.equals(Consts.ASCII);
this.encoder = null;
this.minChunkLimit = params.getIntParameter(CoreConnectionPNames.MIN_CHUNK_LIMIT, 512);
this.metrics = createTransportMetrics();
final CodingErrorAction a1 = (CodingErrorAction) params.getParameter(
CoreProtocolPNames.HTTP_MALFORMED_INPUT_ACTION);
this.onMalformedCharAction = a1 != null ? a1 : CodingErrorAction.REPORT;
final CodingErrorAction a2 = (CodingErrorAction) params.getParameter(
CoreProtocolPNames.HTTP_UNMAPPABLE_INPUT_ACTION);
this.onUnmappableCharAction = a2 != null? a2 : CodingErrorAction.REPORT;
}
项目:dev-courses
文件:JDBCClobFile.java
protected final void setEncoding(final String encoding)
throws UnsupportedEncodingException {
final Charset charSet = charsetForName(encoding);
final CharsetEncoder encoder = charSet.newEncoder().onMalformedInput(
CodingErrorAction.REPLACE).onUnmappableCharacter(
CodingErrorAction.REPLACE);
final float maxBytesPerChar = encoder.maxBytesPerChar();
final float averageBytesPerChar = encoder.averageBytesPerChar();
final boolean fixedWidthCharset =
(maxBytesPerChar == Math.round(maxBytesPerChar))
&& (maxBytesPerChar == averageBytesPerChar);
//
m_fixedWidthCharset = fixedWidthCharset;
m_maxCharWidth = Math.round(maxBytesPerChar);
m_charset = charSet;
m_encoder = encoder;
m_encoding = m_charset.name();
}
项目:spark_deep
文件:Text.java
private static String decode(ByteBuffer utf8, boolean replace)
throws CharacterCodingException {
CharsetDecoder decoder = DECODER_FACTORY.get();
if (replace) {
decoder.onMalformedInput(
CodingErrorAction.REPLACE);
decoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
}
String str = decoder.decode(utf8).toString();
// set decoder back to its default value: REPORT
if (replace) {
decoder.onMalformedInput(CodingErrorAction.REPORT);
decoder.onUnmappableCharacter(CodingErrorAction.REPORT);
}
return str;
}
项目:ttyrec2video
文件:TtyrecFrame.java
/**
* Returns the data for this frame, as it would be translated into
* Unicode; this may omit a few bytes of raw data at the end, or add extra
* at the start, to allow for the situation where a frame boundary occurs
* inside a Unicode character.
* @return the unicodeData
*/
private String getUnicodeData() {
byte[] b;
if (unicodePrefix.length != 0 || unicodeChopEnding != 0) {
b = new byte[frameData.length + unicodePrefix.length - unicodeChopEnding];
System.arraycopy(unicodePrefix,0,b,0,unicodePrefix.length);
System.arraycopy(frameData,0,b,
unicodePrefix.length,frameData.length - unicodeChopEnding);
} else b = frameData;
String unicodeData;
try {
unicodeData = Charset.forName("UTF-8").newDecoder().
onMalformedInput(CodingErrorAction.REPORT).
decode(ByteBuffer.wrap(b)).toString();
} catch (CharacterCodingException ex) {
throw new RuntimeException("UTF-8 became invalid while we weren't looking at it");
}
return unicodeData;
}
项目:hadoop
文件:Text.java
/**
* Converts the provided String to bytes using the
* UTF-8 encoding. If <code>replace</code> is true, then
* malformed input is replaced with the
* substitution character, which is U+FFFD. Otherwise the
* method throws a MalformedInputException.
* @return ByteBuffer: bytes stores at ByteBuffer.array()
* and length is ByteBuffer.limit()
*/
public static ByteBuffer encode(String string, boolean replace)
throws CharacterCodingException {
CharsetEncoder encoder = ENCODER_FACTORY.get();
if (replace) {
encoder.onMalformedInput(CodingErrorAction.REPLACE);
encoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
}
ByteBuffer bytes =
encoder.encode(CharBuffer.wrap(string.toCharArray()));
if (replace) {
encoder.onMalformedInput(CodingErrorAction.REPORT);
encoder.onUnmappableCharacter(CodingErrorAction.REPORT);
}
return bytes;
}
项目:q-mail
文件:FolderNameCodec.java
public String decode(String encodedFolderName) throws CharacterCodingException {
CharsetDecoder decoder = modifiedUtf7Charset.newDecoder().onMalformedInput(CodingErrorAction.REPORT);
ByteBuffer byteBuffer = ByteBuffer.wrap(encodedFolderName.getBytes(asciiCharset));
CharBuffer charBuffer = decoder.decode(byteBuffer);
return charBuffer.toString();
}
项目:FApkSigner
文件:PasswordRetriever.java
private static byte[] encodePassword(char[] pwd, Charset cs) throws IOException {
ByteBuffer pwdBytes =
cs.newEncoder()
.onMalformedInput(CodingErrorAction.REPLACE)
.onUnmappableCharacter(CodingErrorAction.REPLACE)
.encode(CharBuffer.wrap(pwd));
byte[] encoded = new byte[pwdBytes.remaining()];
pwdBytes.get(encoded);
return encoded;
}
项目:java-android-websocket-client
文件:ConnSupport.java
public static CharsetEncoder createEncoder(final ConnectionConfig cconfig) {
if (cconfig == null) {
return null;
}
final Charset charset = cconfig.getCharset();
if (charset != null) {
final CodingErrorAction malformed = cconfig.getMalformedInputAction();
final CodingErrorAction unmappable = cconfig.getUnmappableInputAction();
return charset.newEncoder()
.onMalformedInput(malformed != null ? malformed : CodingErrorAction.REPORT)
.onUnmappableCharacter(unmappable != null ? unmappable: CodingErrorAction.REPORT);
} else {
return null;
}
}
项目:incubator-netbeans
文件:AbstractMatcher.java
public CharsetDecoder prepareDecoder(Charset charset) {
CharsetDecoder decoder = charset.newDecoder();
if (strict) {
decoder.onMalformedInput(CodingErrorAction.REPORT);
decoder.onUnmappableCharacter(CodingErrorAction.REPORT);
} else {
decoder.onMalformedInput(CodingErrorAction.IGNORE);
decoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
}
return decoder;
}
项目:incubator-netbeans
文件:FastMatcher.java
/**
* Reset the character sequence - to read the file from the beginning.
*/
public void reset() {
currentDecoder = prepareDecoder(charset);
currentDecoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
readBytes = 0;
currentBuffer.clear();
currentStart = -1;
}
项目:incubator-netbeans
文件:MultiLineMappedMatcherBig.java
/**
* Reset the character sequence - to read the file from the beginning.
*/
public void reset() {
decoder.reset();
decoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
decodedBytes = 0;
charBuffer.clear();
charBufferStartsAt = -1;
charBufferEndsAt = -1;
overflow = false;
state = State.STANDARD;
if (byteBuffer != null) {
MatcherUtils.unmap(byteBuffer);
byteBuffer = null;
}
}
项目:incubator-netbeans
文件:FileEncodingQuery.java
@Override
protected void implOnMalformedInput(CodingErrorAction action) {
if (buffer != null || !initialized) {
this.malformedInputAction = action;
}
else {
currentDecoder.onMalformedInput(action);
}
}
项目:incubator-netbeans
文件:FileEncodingQuery.java
@Override
protected void implOnUnmappableCharacter(CodingErrorAction action) {
if (buffer != null || !initialized) {
this.unmappableCharAction = action;
}
else {
currentDecoder.onUnmappableCharacter(action);
}
}
项目:incubator-netbeans
文件:FileEncodingQuery.java
@Override
protected void implOnMalformedInput(CodingErrorAction action) {
if (buffer != null || !initialized) {
malformedInputAction = action;
}
else {
currentEncoder.onMalformedInput(action);
}
}
项目:incubator-netbeans
文件:FileEncodingQuery.java
@Override
protected void implOnUnmappableCharacter(CodingErrorAction action) {
if (buffer != null || !initialized) {
unmappableCharAction = action;
}
else {
currentEncoder.onUnmappableCharacter(action);
}
}
项目:jdk8u-jdk
文件:ZipCoder.java
private CharsetDecoder decoder() {
if (dec == null) {
dec = cs.newDecoder()
.onMalformedInput(CodingErrorAction.REPORT)
.onUnmappableCharacter(CodingErrorAction.REPORT);
}
return dec;
}
项目:java-android-websocket-client
文件:HttpParamConfig.java
public static ConnectionConfig getConnectionConfig(final HttpParams params) {
final MessageConstraints messageConstraints = getMessageConstraints(params);
final String csname = (String) params.getParameter(CoreProtocolPNames.HTTP_ELEMENT_CHARSET);
return ConnectionConfig.custom()
.setCharset(csname != null ? Charset.forName(csname) : null)
.setMalformedInputAction((CodingErrorAction)
params.getParameter(CoreProtocolPNames.HTTP_MALFORMED_INPUT_ACTION))
.setMalformedInputAction((CodingErrorAction)
params.getParameter(CoreProtocolPNames.HTTP_UNMAPPABLE_INPUT_ACTION))
.setMessageConstraints(messageConstraints)
.build();
}
项目:incubator-netbeans
文件:TextEditorSupport.java
/** Store the document in proper encoding.
*/
protected void saveFromKitToStream(StyledDocument doc, EditorKit kit, OutputStream out) throws IOException, BadLocationException {
// not calling super.
String enc = EncodingUtil.detectEncoding(doc);
// saved form saveDocument()
Charset cs = fileEncoding.get();
// + fallback, if no info is available
if (cs == null) {
if (enc != null) {
cs = Charset.forName(enc);
} else {
// fallback to the original encoding, no encoding in document istelf.
cs = FileEncodingQuery.getEncoding(getDataObject().getPrimaryFile());
}
}
if ( Util.THIS.isLoggable() ) /* then */ Util.THIS.debug("Saving using encoding");//, new RuntimeException (enc)); // NOI18N
if ( Util.THIS.isLoggable() ) /* then */ Util.THIS.debug("!!! TextEditorSupport::saveFromKitToStream: enc = " + enc);
if ( Util.THIS.isLoggable() ) /* then */ Util.THIS.debug("!!! ::saveFromKitToStream: after first test -> OK");
FilterOutputStream fos = new FilterOutputStream(out) {
@Override
public void close() throws IOException {
flush();
}
};
CharsetEncoder encoder = cs.newEncoder();
encoder.onUnmappableCharacter(CodingErrorAction.REPORT);
Writer w = new OutputStreamWriter (fos, encoder);
if ( Util.THIS.isLoggable() ) /* then */ Util.THIS.debug("!!! ::saveFromKitToStream: writer = " + w);
try {
kit.write(w, doc, 0, doc.getLength());
} finally {
w.close();
}
}
项目:java-android-websocket-client
文件:ConnectionConfig.java
public Builder setMalformedInputAction(final CodingErrorAction malformedInputAction) {
this.malformedInputAction = malformedInputAction;
if (malformedInputAction != null && this.charset == null) {
this.charset = Consts.ASCII;
}
return this;
}
项目:TheIntellectualOctocats
文件:RawConsoleInput.java
private static synchronized int decodeCharFromBytes (byte[] inBytes, int inLen) {
charsetDecoder.reset();
charsetDecoder.onMalformedInput(CodingErrorAction.REPLACE);
charsetDecoder.replaceWith(invalidKeyStr);
ByteBuffer in = ByteBuffer.wrap(inBytes, 0, inLen);
CharBuffer out = CharBuffer.allocate(1);
charsetDecoder.decode(in, out, false);
if (out.position() == 0) {
return -1; }
return out.get(0); }
项目:Moenagade
文件:ReaderInputStream.java
/**
* Construct a new {@link ReaderInputStream}.
*
* @param reader the target {@link Reader}
* @param charset the charset encoding
* @param bufferSize the size of the input buffer in number of characters
*/
public ReaderInputStream(Reader reader, Charset charset, int bufferSize) {
this(reader,
charset.newEncoder()
.onMalformedInput(CodingErrorAction.REPLACE)
.onUnmappableCharacter(CodingErrorAction.REPLACE),
bufferSize);
}
项目:tomcat7
文件:C2BConverter.java
public C2BConverter(String encoding) throws IOException {
encoder = B2CConverter.getCharset(encoding).newEncoder();
// FIXME: See if unmappable/malformed behavior configuration is needed
// in practice
encoder.onUnmappableCharacter(CodingErrorAction.REPLACE)
.onMalformedInput(CodingErrorAction.REPLACE);
char[] left = new char[4];
leftovers = CharBuffer.wrap(left);
}
项目:guava-mock
文件:ReaderInputStream.java
/**
* Creates a new input stream that will encode the characters from {@code reader} into bytes using
* the given character set. Malformed input and unmappable characters will be replaced.
*
* @param reader input source
* @param charset character set used for encoding chars to bytes
* @param bufferSize size of internal input and output buffers
* @throws IllegalArgumentException if bufferSize is non-positive
*/
ReaderInputStream(Reader reader, Charset charset, int bufferSize) {
this(
reader,
charset
.newEncoder()
.onMalformedInput(CodingErrorAction.REPLACE)
.onUnmappableCharacter(CodingErrorAction.REPLACE),
bufferSize);
}
项目:Android-Signature
文件:PasswordRetriever.java
private static byte[] encodePassword(char[] pwd, Charset cs) throws IOException {
ByteBuffer pwdBytes =
cs.newEncoder()
.onMalformedInput(CodingErrorAction.REPLACE)
.onUnmappableCharacter(CodingErrorAction.REPLACE)
.encode(CharBuffer.wrap(pwd));
byte[] encoded = new byte[pwdBytes.remaining()];
pwdBytes.get(encoded);
return encoded;
}
项目:Android-Signature
文件:PasswordRetriever.java
private static char[] decodePassword(byte[] pwdBytes, Charset encoding) throws IOException {
CharBuffer pwdChars =
encoding.newDecoder()
.onMalformedInput(CodingErrorAction.REPLACE)
.onUnmappableCharacter(CodingErrorAction.REPLACE)
.decode(ByteBuffer.wrap(pwdBytes));
char[] result = new char[pwdChars.remaining()];
pwdChars.get(result);
return result;
}
项目:lams
文件:ReaderInputStream.java
/**
* Construct a new {@link ReaderInputStream}.
*
* @param reader the target {@link Reader}
* @param charset the charset encoding
* @param bufferSize the size of the input buffer in number of characters
*/
public ReaderInputStream(Reader reader, Charset charset, int bufferSize) {
this(reader,
charset.newEncoder()
.onMalformedInput(CodingErrorAction.REPLACE)
.onUnmappableCharacter(CodingErrorAction.REPLACE),
bufferSize);
}
项目:lams
文件:CharSequenceInputStream.java
/**
* Constructor.
*
* @param s the input character sequence
* @param charset the character set name to use
* @param bufferSize the buffer size to use.
*/
public CharSequenceInputStream(final CharSequence s, final Charset charset, int bufferSize) {
super();
this.encoder = charset.newEncoder()
.onMalformedInput(CodingErrorAction.REPLACE)
.onUnmappableCharacter(CodingErrorAction.REPLACE);
this.bbuf = ByteBuffer.allocate(bufferSize);
this.bbuf.flip();
this.cbuf = CharBuffer.wrap(s);
this.mark = -1;
}
项目:java-android-websocket-client
文件:ConnectionConfig.java
ConnectionConfig(
final int bufferSize,
final int fragmentSizeHint,
final Charset charset,
final CodingErrorAction malformedInputAction,
final CodingErrorAction unmappableInputAction,
final MessageConstraints messageConstraints) {
super();
this.bufferSize = bufferSize;
this.fragmentSizeHint = fragmentSizeHint;
this.charset = charset;
this.malformedInputAction = malformedInputAction;
this.unmappableInputAction = unmappableInputAction;
this.messageConstraints = messageConstraints;
}
项目:lams
文件:Dictionary.java
/**
* Retrieves the CharsetDecoder for the given encoding. Note, This isn't perfect as I think ISCII-DEVANAGARI and
* MICROSOFT-CP1251 etc are allowed...
*
* @param encoding Encoding to retrieve the CharsetDecoder for
* @return CharSetDecoder for the given encoding
*/
private CharsetDecoder getJavaEncoding(String encoding) {
if ("ISO8859-14".equals(encoding)) {
return new ISO8859_14Decoder();
}
String canon = CHARSET_ALIASES.get(encoding);
if (canon != null) {
encoding = canon;
}
Charset charset = Charset.forName(encoding);
return charset.newDecoder().onMalformedInput(CodingErrorAction.REPLACE);
}
项目:openjdk-jdk10
文件:ZipCoder.java
private CharsetDecoder decoder() {
CharsetDecoder dec = decTL.get();
if (dec == null) {
dec = cs.newDecoder()
.onMalformedInput(CodingErrorAction.REPORT)
.onUnmappableCharacter(CodingErrorAction.REPORT);
decTL.set(dec);
}
return dec;
}
项目:FirefoxData-android
文件:HttpParamConfig.java
public static ConnectionConfig getConnectionConfig(final HttpParams params) {
final MessageConstraints messageConstraints = getMessageConstraints(params);
final String csname = (String) params.getParameter(CoreProtocolPNames.HTTP_ELEMENT_CHARSET);
return ConnectionConfig.custom()
.setCharset(csname != null ? Charset.forName(csname) : null)
.setMalformedInputAction((CodingErrorAction)
params.getParameter(CoreProtocolPNames.HTTP_MALFORMED_INPUT_ACTION))
.setMalformedInputAction((CodingErrorAction)
params.getParameter(CoreProtocolPNames.HTTP_UNMAPPABLE_INPUT_ACTION))
.setMessageConstraints(messageConstraints)
.build();
}
项目:FirefoxData-android
文件:HttpProtocolParams.java
/**
* Obtains the value of the {@link CoreProtocolPNames#HTTP_UNMAPPABLE_INPUT_ACTION} parameter.
* @param params HTTP parameters
* @return Action to perform upon receiving a unmapped input
*
* @since 4.2
*/
public static CodingErrorAction getUnmappableInputAction(final HttpParams params) {
Args.notNull(params, "HTTP parameters");
final Object param = params.getParameter(CoreProtocolPNames.HTTP_UNMAPPABLE_INPUT_ACTION);
if (param == null) {
// the default CodingErrorAction
return CodingErrorAction.REPORT;
}
return (CodingErrorAction) param;
}