我正在使用Java做一些工作,我遇到了JavaMail本身不支持的编码(按照设计),比如UTF7/unicode-1-1-utf-7。特别是对于这种编码,我找到了Java Charset和UTF7的CharsetProvider的JUTF7实现。然而,将jutf7.jar添加到我的类路径后,我仍然得到了JUTF7,并且unicode-1-1-utf-7绝对是UnsupportedEncodingException的别名之一。
有没有办法手动加载Charset或确保正在加载Charset,这样我就可以排除这是一个原因?
发布于 2011-06-11 02:27:59
除了将必要的类放入类路径之外,还需要使用新的字符集。引用Javadoc的话:
字符集提供程序使用META-INF/
资源目录中名为java.nio.charset.spi.CharsetProvider的提供程序配置文件标识自身。该文件应该包含一个完全限定的具体字符集提供程序类名的列表,每行一个。..。
( http://download.oracle.com/javase/6/docs/api/java/nio/charset/spi/CharsetProvider.html )
这个特殊的文件是否存在于JAR中?
发布于 2012-06-21 15:51:14
您应该确保jar由主类加载器加载。您可以通过将jar添加到JVM的jre/lib/ext扩展目录或将其添加到主程序的类路径来实现这一点。例如,如果您正在使用Tomcat,请将-cp /path/to/jutf7.jar添加到Tomcat的启动脚本中。
类似地,如果您希望从scala REPL测试jutf7,则需要按如下方式启动它
env JAVA_OPTS="-cp /path/to/jutf7-1.0.0.jar" scala使用Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)进行测试
https://stackoverflow.com/questions/6308587
复制相似问题