当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java java.nio.charset.CodingErrorAction用法及代码示例


在 Java 编程中,当我们谈论跨不同系统处理数据和信息时,字符编码非常重要。 java.nio.charset 包包含用于管理字符编码和解码的类。CodingErrorActionclass 是该包的核心类之一。此类说明出现编码或解码问题时要采取的操作。

java.nio.charset.CodingErrorActionclass 是一个枚举,表示响应编码或解码错误而要处理的不同操作。这些操作可帮助开发人员定义一旦发生意外情况,编码或解码过程将如何进行。

java.nio.charset.CodingErrorAction 类的方法

方法

说明

toString()

返回说明此操作的字符串。

java.nio.charset.CodingErrorAction 类的字段

场地

说明

IGNORE

应通过丢弃错误输入并恢复编码操作来处理错误

REPLACE

应通过删除错误输入、将替换值附加到输出缓冲区来处理错误

REPORT

错误需要报告给开发者

示例

举个例子,我们将使用 java.nio.charset.CodingErrorAction IGNORE 属性来忽略编码或解码过程中引起的异常。

import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import java.nio.charset.CharsetEncoder;
import java.nio.charset.CodingErrorAction;

public class CodingErrorActionShortExample {
    public static void main(String[] args) {
        Charset charset = Charset.forName("ISO-8859-1");
        CharsetEncoder encoder = charset.newEncoder();

        // Set the coding error action to IGNORE
        encoder.onMalformedInput(CodingErrorAction.IGNORE)
              .onUnmappableCharacter(CodingErrorAction.IGNORE);

        String input = "Hello, 你好, नमस्ते";
        CharBuffer charBuffer = CharBuffer.wrap(input);
        ByteBuffer byteBuffer = ByteBuffer.allocate(50);

        try {
            encoder.encode(charBuffer, byteBuffer, true);
            byteBuffer.flip();

            while (byteBuffer.hasRemaining()) {
                System.out.print((char) byteBuffer.get());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

输出:

Hello, , 

相关用法


注:本文由纯净天空筛选整理自kirandeepkaurguler大神的英文原创作品 java.nio.charset.CodingErrorAction Class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。