当前位置:  开发笔记 > 编程语言 > 正文

Java运行时不支持编码'UTF-8'

如何解决《Java运行时不支持编码'UTF-8'》经验,为你挑选了2个好方法。

每当我在SUN Java(构建1.6.0_10-rc2-b32和其他1.6.x版本)下启动基于Apache Felix(OSGi)的应用程序时,我在控制台上看到以下消息输出(通常在Ubuntu 8.4下):

警告:Java运行时不支持编码'UTF-8'.

在运行Tomcat和Resin时,我偶尔也会看到此消息显示.如果java支持unicode和UTF-8,导致此消息的原因是什么?我还没有找到任何参考,或者在其他地方找到答案.



1> Dan Dyer..:

根据文档 "Java平台的每个实现都需要支持以下标准字符集... US-ASCII,ISO-8859-1,UTF-8,UTF-16BE,UTF-16LE,UTF-16." 所以我怀疑Sun发布了没有UTF-8支持的版本.

实际的错误消息似乎来自此处,它是Xerces XML解析器的一部分.我想这是问题发生的XML解析器.


我的实例中的问题源于OSGi和类加载器可见性的使用.多个bundle实例化了Xerces XML解析器,但由于这些资源不可见,因此无法找到字符集定义.
如果这是解决方案,它是如何解决问题的?你能说明你做了什么吗?问题系统中的Fuse ESB 4.4出现问题.

2> tgdavies..:

尝试以下程序:

import java.nio.charset.Charset;

public class TestCharset {
    public static void main(String[] args) {
        System.out.println(Charset.forName("UTF-8"));
    }
}

如果这会引发异常,那么JDK就会出现问题.如果它打印"UTF-8",那么你的JDK就可以了,你的应用程序正在做一些奇怪的事情.

如果是这种情况,请在调试器下运行您的应用程序,并在http://www.java2s.com/Open-Source/Java-Document/XML/xalan/org/apache/xml/serializer/ToStream.java中添加断点. .htm - 这是产生此警告的地方,并逐步查看Xalan无法找到编码的原因.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有