代码:
import java.nio.charset.Charset;
public static Charset lookup(final String name) {
if (name == null) {
return null;
}
try {
Charset charset = Charset.forName(name);
if (charset != null) {
Charset superset = map.get(charset);
if (superset != null) {
charset = superset;
}
}
return charset;
} catch (IllegalCharsetNameException ex) {
log.warn("Exception caught", ex);
return null;
} catch (UnsupportedCharsetException ex) {
return null;
}
}
问题发生在' name'是" UTF-7" for Charset.forName(name);
我总是在My Linux平台上获得IllegalCharsetNameException。
但它在我的Windows平台上看起来还不错。
两个平台具有相同的源代码和java版本
java version" 1.7.0_17" Java(TM)SE运行时环境(版本1.7.0_17-b02) Java HotSpot(TM)64位服务器VM(内置23.7-b01,混合模式)
我不知道如何解决它..
谢谢!!
答案 0 :(得分:1)
答案 1 :(得分:0)
@RamonBoza找到了与此相关的权威“Bug”数据库条目。
它实际上是一个RFE,要求添加UTF-7支持作为核心功能;即在所有平台上。
已使用“无法修复”的闭包代码关闭。这意味着问题尚未已解决,可能不会在将来发生。
RFE评论表明,您应该通过标准字符集API / SPI向第三方寻求添加UTF-7支持。谷歌搜索应找到合适的实施方案;例如你可以尝试这个开源的:http://www.freeutils.net/source/jcharset/
你是否将这种不一致称为“错误”取决于你,但我称之为功能。 Java文档不会将UTF-7宣传为支持。