CharsetDecoder unmappableCharacterAction() method in Java with Examples

2025 年 5 月 8 日 | 阅读 3 分钟

java.nio.charset.CharsetDecoder 类有一个内置方法称为 unmappableCharacterAction(),该方法返回此解码器在无法映射字符错误实例中的当前操作。在解码过程中,Java 中的 CharsetDecoder 类使用 unmappableCharacterAction() 方法来检索与管理无法映射字符序列相关的当前 CodingErrorAction。当一个字符无法从输入的字节序列转换为目标字符集中的有效字符时,就被称为无法映射。

在这种情况下,该方法返回 CodingErrorAction 设置,可以是 REPORT、IGNORE 或 REPLACE。例如,IGNORE 将静默跳过无法映射的序列,REPLACE 将用替换字符替换它,而 REPORT 将抛出错误。此技术有助于调整错误管理以实现可靠的解码过程。

语法

参数:上述方法不接受任何参数。

返回值:该函数返回此解码器对于无法映射字符错误的当前操作。

示例 1

下面的代码展示了如何使用 CharsetDecoder 类提取无法映射字符序列的当前 CodingErrorAction。它生成一个匹配的 CharsetDecoder 并为 ISO-2022-CN 编码初始化一个 Charset对象。然后使用 unmappableCharacterAction() 方法检索并显示与无法映射字符错误相关的操作,该操作描述了解码器如何处理无法映射到目标编码的字符。通过输出可以控制解码行为,输出表明解码器是设置为 REPORT、IGNORE 还是 REPLACE 这些错误。

实施

文件名:UnmappableCharacterActionExample1.java

输出

 
The CharsetDecoder is given by: sun.nio.cs.ext.ISO2022_CN$Decoder@330bedb4
The Current action for unmappable-character errors is : REPORT   

示例 2

对于无法映射的字符序列,代码显示了如何使用 CharsetDecoder 类提取当前的 CodingErrorAction。对于 US-ASCII 编码,它生成一个 Charset 对象并为其设置一个 CharsetDecoder。为了了解解码器在最终字符集中如何处理无法映射的字符,然后使用 unmappableCharacterAction() 方法。结果表明解码器在遇到无法映射的字符错误时会做什么;它可以是 REPORT、IGNORE 或 REPLACE。

实施

文件名:UnmappableCharacterActionExample2.java

输出

 
The CharsetDecoder is given by: sun.nio.cs.US_ASCII$Decoder@15db9742
The Current action for unmappable-character errors is : REPORT