Java 中的 java.io.UnsupportedEncodingException 及其示例

2024年9月10日 | 阅读 2 分钟

当对 Java 字符串或字节应用不受支持的字符编码方案时,会引发 java.io.UnsupportedEncodingException。通过 Java String 的 getBytes 函数,可以从请求的字符串获取指定编码格式的字节。如果 Java 不支持该编码格式,String 的 getBytes 函数将使用指定的编码格式抛出 Java.io.UnsupportedEncodingException。

原始二进制的字符解释由字符编码决定。English Windows 计算机默认使用的编码是 CP1252。其他系统和语言可能使用不同的默认编码。常用的字符编码方案是 UTF-8 和 UTF-16。Java 允许使用 String.getBytes() 和 StringCoding.encode() 方法将原始字节解释为字符串。

类查看器

语法

由于不支持字符编码。让我们继续查看该类的构造函数,如下所示:

  1. UnsupportedEncodingException(): 创建一个没有提供详细说明的 UnsupportedEncodingException。
  2. UnsupportedEncodingException(String s): 创建一个提供详细说明的 UnsupportedEncodingException。

实施

现在让我们找出如何解决这个问题。借助下面提供的 throw java.io.UnsupportedEncodingException 示例,我们将继续。 "UTF" 编码方案的名称不被识别。

如果编码策略不受支持或未知,Java 无法将字符串转换为字节。这就是原因。如果 Java 检测到不受支持或未知的编码技术,它将发出 java.io.UnsupportedEncodingException。

示例 1

文件名: UnsupportedException1.java

输出

Exception in thread "main" java.io.UnsupportedEncodingException: UTF
at java.base/java.lang.String.lookupCharset(String.java:841)
at java.base/java.lang.String.getBytes(String.java:1770)
	at UnsupportedException1.main(UnsupportedException1.java:10)

要解决此问题,必须为 String.getBytes 方法提供 Java 支持的编码方案的名称。在继续之前,请查看此处可用的方法列表。

因此,当需要对编码过程进行更多控制时,应使用 CharsetEncoder 类。String.getBytes 函数返回一个字节数组。

示例 2

文件名: UnsupportedException2.java

输出

The Given input String : Welcome to the World
The Output bytes is given by : [B@7e9e5f8a