当前位置: 首页>>代码示例>>Java>>正文


Java CharsetEncoder.encode方法代码示例

本文整理汇总了Java中java.nio.charset.CharsetEncoder.encode方法的典型用法代码示例。如果您正苦于以下问题:Java CharsetEncoder.encode方法的具体用法?Java CharsetEncoder.encode怎么用?Java CharsetEncoder.encode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.nio.charset.CharsetEncoder的用法示例。


在下文中一共展示了CharsetEncoder.encode方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getBytes

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
byte[] getBytes(String s) {
    CharsetEncoder ce = encoder().reset();
    char[] ca = s.toCharArray();
    int len = (int)(ca.length * ce.maxBytesPerChar());
    byte[] ba = new byte[len];
    if (len == 0)
        return ba;
    ByteBuffer bb = ByteBuffer.wrap(ba);
    CharBuffer cb = CharBuffer.wrap(ca);
    CoderResult cr = ce.encode(cb, bb, true);
    if (!cr.isUnderflow())
        throw new IllegalArgumentException(cr.toString());
    cr = ce.flush(bb);
    if (!cr.isUnderflow())
        throw new IllegalArgumentException(cr.toString());
    if (bb.position() == ba.length)  // defensive copy?
        return ba;
    else
        return Arrays.copyOf(ba, bb.position());
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:21,代码来源:ZipCoder.java

示例2: encode

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
/**
 * 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;
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:25,代码来源:Text.java

示例3: doWriteText

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
private void doWriteText(CharBuffer buffer, boolean finalFragment)
        throws IOException {
    CharsetEncoder encoder = B2CConverter.UTF_8.newEncoder();
    do {
        CoderResult cr = encoder.encode(buffer, bb, true);
        if (cr.isError()) {
            cr.throwException();
        }
        bb.flip();
        if (buffer.hasRemaining()) {
            doWriteBytes(bb, false);
        } else {
            doWriteBytes(bb, finalFragment);
        }
    } while (buffer.hasRemaining());

    // Reset - bb will be cleared in doWriteBytes()
    cb.clear();
}
 
开发者ID:liaokailin,项目名称:tomcat7,代码行数:20,代码来源:WsOutbound.java

示例4: doWriteText

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
private void doWriteText(CharBuffer buffer, boolean finalFragment) throws IOException {
	CharsetEncoder encoder = B2CConverter.UTF_8.newEncoder();
	do {
		CoderResult cr = encoder.encode(buffer, bb, true);
		if (cr.isError()) {
			cr.throwException();
		}
		bb.flip();
		if (buffer.hasRemaining()) {
			doWriteBytes(bb, false);
		} else {
			doWriteBytes(bb, finalFragment);
		}
	} while (buffer.hasRemaining());

	// Reset - bb will be cleared in doWriteBytes()
	cb.clear();
}
 
开发者ID:how2j,项目名称:lazycat,代码行数:19,代码来源:WsOutbound.java

示例5: byCharsetEncoder_US_ASCII

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
@Benchmark
public byte[] byCharsetEncoder_US_ASCII() {
    try {
        CharsetEncoder encoder = asciiencode.get();
        CharBuffer buffer  = charbuffergenerator.get();
        buffer.clear();
        buffer.append(STR);
        buffer.flip();

        ByteBuffer outbuffer = bytebuffergenerator.get();
        outbuffer.clear();

        CoderResult result = encoder.encode(buffer, outbuffer, false);
        if (result.isError()) {
            result.throwException();
        }
        byte[] b = new byte[STR.length()];
        outbuffer.flip();
        outbuffer.get(b);
        return b;
    } catch (CharacterCodingException e) {
        throw new RuntimeException(e);
    }
}
 
开发者ID:fbacchella,项目名称:RegexPerf,代码行数:25,代码来源:StringToBytes.java

示例6: fromString

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
public ByteBuffer fromString(String source)
{
    // the encoder must be reset each time it's used, hence the thread-local storage
    CharsetEncoder theEncoder = encoder.get();
    theEncoder.reset();

    try
    {
        return theEncoder.encode(CharBuffer.wrap(source));
    }
    catch (CharacterCodingException exc)
    {
        throw new MarshalException(String.format("Invalid ASCII character in string literal: %s", exc));
    }
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:16,代码来源:AsciiType.java

示例7: appendBytes

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
private static void appendBytes(ByteStringBuilder builder, CharsetEncoder encoder,
    int codePoint) {
  final ByteBuffer bytes;
  try {
    bytes = encoder.encode(CharBuffer.wrap(Character.toChars(codePoint)));
  } catch (CharacterCodingException ex) {
    // should not happen
    throw new IllegalStateException(ex);
  }

  while (bytes.hasRemaining()) {
    builder.append(bytes.get());
  }
}
 
开发者ID:kroepke,项目名称:luna,代码行数:15,代码来源:StringLiteral.java

示例8: testRoundTrip

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
@Test
public void testRoundTrip() throws CharacterCodingException {
    final CharsetDecoder dec = charset.newDecoder();
    final CharsetEncoder enc = charset.newEncoder();
    final byte[] b1 = new byte[256];
    for (int i = 0; i < b1.length; i++)
        b1[i] = (byte) i;
    final ByteBuffer bb1 = ByteBuffer.wrap(b1);
    final CharBuffer cb = dec.decode(bb1);
    final ByteBuffer bb2 = enc.encode(cb);
    final byte[] b2 = bb2.array();
    assertTrue(Arrays.equals(b1, b2));
}
 
开发者ID:christian-schlichtherle,项目名称:truevfs,代码行数:14,代码来源:OctetCharsetTestSuite.java

示例9: encode

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
private ByteBuffer encode(String str)
{
	// Encode a string into a byte buffer
	ByteBuffer bb = null;
	CharsetEncoder isoencoder = charset.newEncoder();
	try {
		bb = isoencoder.encode(CharBuffer.wrap(str));
	} catch (CharacterCodingException e) {
		log.error(e);
	}
	return bb;
}
 
开发者ID:Esri,项目名称:defense-solutions-proofs-of-concept,代码行数:13,代码来源:RegexTextInboundAdapter.java

示例10: encode

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
static byte[] encode(Charset cs, char[] ca, int off, int len) {
    CharsetEncoder ce = cs.newEncoder();
    int en = scale(len, ce.maxBytesPerChar());
    byte[] ba = new byte[en];
    if (len == 0)
        return ba;
    boolean isTrusted = false;
    if (System.getSecurityManager() != null) {
        if (!(isTrusted = (cs.getClass().getClassLoader0() == null))) {
            ca =  Arrays.copyOfRange(ca, off, off + len);
            off = 0;
        }
    }
    ce.onMalformedInput(CodingErrorAction.REPLACE)
      .onUnmappableCharacter(CodingErrorAction.REPLACE)
      .reset();
    if (ce instanceof ArrayEncoder) {
        int blen = ((ArrayEncoder)ce).encode(ca, off, len, ba);
        return safeTrim(ba, blen, cs, isTrusted);
    } else {
        ByteBuffer bb = ByteBuffer.wrap(ba);
        CharBuffer cb = CharBuffer.wrap(ca, off, len);
        try {
            CoderResult cr = ce.encode(cb, bb, true);
            if (!cr.isUnderflow())
                cr.throwException();
            cr = ce.flush(bb);
            if (!cr.isUnderflow())
                cr.throwException();
        } catch (CharacterCodingException x) {
            throw new Error(x);
        }
        return safeTrim(ba, bb.position(), cs, isTrusted);
    }
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:36,代码来源:StringCoding.java

示例11: write

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
@Override
public void write(DataOutput out) throws IOException {

  out.writeByte(0);

  Map<String,String> writeHeaders = getHeaders();
  if (null != writeHeaders) {
    out.writeInt(headers.size());

    CharsetEncoder encoder = ENCODER_FACTORY.get();

    for (String key : headers.keySet()) {
      out.writeByte(EVENT_MAP_TEXT_WRITABLE_ID);
      ByteBuffer keyBytes = encoder.encode(CharBuffer.wrap(key.toCharArray()));
      int keyLength = keyBytes.limit();
      WritableUtils.writeVInt(out, keyLength);
      out.write(keyBytes.array(), 0, keyLength);

      String value = headers.get(key);
      out.write(EVENT_MAP_TEXT_WRITABLE_ID);
      ByteBuffer valueBytes = encoder.encode(CharBuffer.wrap(value.toCharArray()));
      int valueLength = valueBytes.limit();
      WritableUtils.writeVInt(out, valueLength );
      out.write(valueBytes.array(), 0, valueLength);
    }
  } else {
    out.writeInt( 0 );
  }

  byte[] body = getBody();
  if (body == null) {
    out.writeInt(-1);
  } else {
    out.writeInt(body.length);
    out.write(body);
  }
}
 
开发者ID:moueimei,项目名称:flume-release-1.7.0,代码行数:38,代码来源:FlumeEvent.java

示例12: encode

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
public static byte[] encode (final char[] charArray){
    try {
        final CharsetEncoder encoder = Charset.forName("UTF-8").newEncoder();
        final ByteBuffer bb = encoder.encode(CharBuffer.wrap(charArray));

        final byte[] ba=new byte[bb.limit()];
        bb.get(ba);

        return ba;
    } catch (CharacterCodingException ex) {
        STRINGUTIL_LOGGER.error("Sorry. had a error on during string encode. ("+ex.toString()+")");
        return null;
    }
}
 
开发者ID:LeeKyoungIl,项目名称:illuminati,代码行数:15,代码来源:StringObjectUtils.java

示例13: getBytes

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
byte[] getBytes(String s) {
    CharsetEncoder ce = encoder().reset();
    char[] ca = s.toCharArray();
    int len = (int)(ca.length * ce.maxBytesPerChar());
    byte[] ba = new byte[len];
    if (len == 0)
        return ba;
    // UTF-8 only for now. Other ArrayDeocder only handles
    // CodingErrorAction.REPLACE mode.
    if (isUTF8 && ce instanceof ArrayEncoder) {
        int blen = ((ArrayEncoder)ce).encode(ca, 0, ca.length, ba);
        if (blen == -1)    // malformed
            throw new IllegalArgumentException("MALFORMED");
        return Arrays.copyOf(ba, blen);
    }
    ByteBuffer bb = ByteBuffer.wrap(ba);
    CharBuffer cb = CharBuffer.wrap(ca);
    CoderResult cr = ce.encode(cb, bb, true);
    if (!cr.isUnderflow())
        throw new IllegalArgumentException(cr.toString());
    cr = ce.flush(bb);
    if (!cr.isUnderflow())
        throw new IllegalArgumentException(cr.toString());
    if (bb.position() == ba.length)  // defensive copy?
        return ba;
    else
        return Arrays.copyOf(ba, bb.position());
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:29,代码来源:ZipCoder.java

示例14: getSubstringByte

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
/**
 * 指定したバイト数で文字列をカットする
 *
 * @param obj 対象オブジェクト
 * @param capacity カットするバイト数
 * @return String
 * @throws CharacterCodingException
 * @throws UnsupportedEncodingException
 */
private String getSubstringByte(final Object obj, final int capacity) throws CharacterCodingException,
		UnsupportedEncodingException {

	String str = obj == null ? "null" : obj.toString();
	if (capacity < 1) {
		return str;
	}

	CharsetEncoder ce = Charset.forName(ENCODING_SHIFT_JIS).newEncoder()
			.onMalformedInput(CodingErrorAction.REPLACE).onUnmappableCharacter(CodingErrorAction.REPLACE).reset();
	if (capacity >= ce.maxBytesPerChar() * str.length()) {
		return str;
	}
	CharBuffer cb = CharBuffer.wrap(new char[Math.min(str.length(), capacity)]);
	str.getChars(0, Math.min(str.length(), cb.length()), cb.array(), 0);

	if (capacity >= ce.maxBytesPerChar() * cb.limit()) {
		return cb.toString();
	}
	ByteBuffer out = ByteBuffer.allocate(capacity);
	ce.reset();
	CoderResult cr = null;
	if (cb.hasRemaining()) {
		cr = ce.encode(cb, out, true);
	} else {
		cr = CoderResult.UNDERFLOW;
	}
	if (cr.isUnderflow()) {
		cr = ce.flush(out);
	}
	return cb.flip().toString();
}
 
开发者ID:future-architect,项目名称:uroborosql,代码行数:42,代码来源:DumpResultSqlFilter.java

示例15: encode

import java.nio.charset.CharsetEncoder; //导入方法依赖的package包/类
static byte[] encode(Charset cs, byte coder, byte[] val) {
    if (cs == UTF_8) {
        return encodeUTF8(coder, val);
    } else if (cs == ISO_8859_1) {
        return encode8859_1(coder, val);
    } else if (cs == US_ASCII) {
        return encodeASCII(coder, val);
    }
    CharsetEncoder ce = cs.newEncoder();
    // fastpath for ascii compatible
    if (coder == LATIN1 && (((ce instanceof ArrayEncoder) &&
                             ((ArrayEncoder)ce).isASCIICompatible() &&
                             !hasNegatives(val, 0, val.length)))) {
        return Arrays.copyOf(val, val.length);
    }
    int len = val.length >> coder;  // assume LATIN1=0/UTF16=1;
    int en = scale(len, ce.maxBytesPerChar());
    byte[] ba = new byte[en];
    if (len == 0) {
        return ba;
    }
    boolean isTrusted = cs.getClass().getClassLoader0() == null ||
                        System.getSecurityManager() == null;
    ce.onMalformedInput(CodingErrorAction.REPLACE)
      .onUnmappableCharacter(CodingErrorAction.REPLACE)
      .reset();
    if (ce instanceof ArrayEncoder) {
        if (!isTrusted) {
            val = Arrays.copyOf(val, val.length);
        }
        int blen = (coder == LATIN1 ) ? ((ArrayEncoder)ce).encodeFromLatin1(val, 0, len, ba)
                                      : ((ArrayEncoder)ce).encodeFromUTF16(val, 0, len, ba);
        if (blen != -1) {
            return safeTrim(ba, blen, isTrusted);
        }
    }
    char[] ca = (coder == LATIN1 ) ? StringLatin1.toChars(val)
                                   : StringUTF16.toChars(val);
    ByteBuffer bb = ByteBuffer.wrap(ba);
    CharBuffer cb = CharBuffer.wrap(ca, 0, len);
    try {
        CoderResult cr = ce.encode(cb, bb, true);
        if (!cr.isUnderflow())
            cr.throwException();
        cr = ce.flush(bb);
        if (!cr.isUnderflow())
            cr.throwException();
    } catch (CharacterCodingException x) {
        throw new Error(x);
    }
    return safeTrim(ba, bb.position(), isTrusted);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:53,代码来源:StringCoding.java


注:本文中的java.nio.charset.CharsetEncoder.encode方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。