【发布时间】:2025-12-10 22:25:02
【问题描述】:
我遇到了一个异常,隐藏在第 3 方库中,消息如下:
java.io.UnsupportedEncodingException: BIG-5
我认为这是因为 Java 没有为 java.nio.charset.Charset 定义这个名称。 Charset.forName("big5") 很好,但是 Charset.forName("big-5") 会抛出异常。 (所有这些名称似乎都不区分大小写。)
这与“utf-8”不同,后者有一些别名更宽容。例如,Charset.forName("utf8") 和 Charset.forName("utf-8") 都可以正常工作。
问题:有没有办法添加别名以便“big-5”映射到“big5”?
【问题讨论】:
-
有没有第三方库JavaMail?
-
用
private static final Charset BIG5_CHARSET = Charset.forName("big5")在某处创建一个常量?你没有问题了。还是您说这是您无法控制的内部代码? -
字符集名称从何而来?你能拦截和规范化它们吗?
-
@dnault 是的,它是 JavaMail。我也许可以截取数据,但如果我可以在全局某个地方定义别名会更容易。
-
查看解决此问题的JavaMail FAQ entry,包括示例代码。 (来自Bill Shannon 对一个现已删除的答案的评论。)
标签: java character-encoding java-8 jakarta-mail