📌  相关文章
📜  Java中的 CharsetDecoder detectedCharset() 方法及示例

📅  最后修改于: 2022-05-13 01:55:46.944000             🧑  作者: Mango

Java中的 CharsetDecoder detectedCharset() 方法及示例

DetectedCharset ()方法是Java.nio.charset.CharsetDecoder 类的内置方法,用于检索此解码器检测到的字符集。此方法的默认实现总是抛出UnsupportedOperationException 。一旦确定输入字符集,它应该被自动检测解码器覆盖以返回 true。

语法

public Charset detectedCharset()

参数:该函数不接受任何参数。

返回值:该函数返回此解码器已检测到的字符集。

异常:如果此解码器未实现自动检测字符集,则抛出UnsupportedOperationException ;如果读取的字节数不足以确定字符集,则抛出 IllegalStateException

下面是上述函数的实现:

方案一:

// Java program to demonstrate
// the above function
  
import java.nio.charset.*;
import java.util.Iterator;
import java.util.Map;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Gets the charset
        Charset charset = Charset.forName("ISO-2022-CN");
  
        // Get the CharsetDecoder
        CharsetDecoder decoder = charset.newDecoder();
  
        // Prints the CharsetDecoder
        System.out.println("CharsetDecoder: " + decoder);
  
        try {
            System.out.println("detected Charset: "
                               + decoder.detectedCharset());
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}
输出:
CharsetDecoder: sun.nio.cs.ext.ISO2022_CN$Decoder@232204a1
java.lang.UnsupportedOperationException

方案二:

// Java program to demonstrate
// the above function
  
import java.nio.charset.*;
import java.util.Iterator;
import java.util.Map;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Gets the charset
        Charset charset = Charset.forName("x-windows-949");
  
        // Get the CharsetDecoder
        CharsetDecoder decoder = charset.newDecoder();
  
        // Prints the CharsetDecoder
        System.out.println("CharsetDecoder: " + decoder);
  
        try {
            System.out.println("detected Charset: "
                               + decoder.detectedCharset());
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}
输出:
CharsetDecoder: sun.nio.cs.ext.DoubleByte$Decoder@232204a1
java.lang.UnsupportedOperationException

参考: https://docs.oracle.com/javase/9/docs/api/ Java/nio/charset/CharsetDecoder.html#detectedCharset–