當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。